创建一个文件夹,在该文件夹中创建index.html文件,该文件中的代码如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script>window.onload = function () {var btn = document.getElementById('btnLogin')btn.addEventListener('click', function () {sendRequest()})function sendRequest() {var userName = document.getElementById('userName').valuevar xhr = new XMLHttpRequest()let url = 'http://localhost:8080/getUserInfo?userName=' + userNamexhr.open('get', url, true)xhr.send()xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {console.log(xhr.responseText)}}}}</script></head><body>用户名:<input type="text" id="userName" /> <br /><button id="btnLogin">登录</button></body>
</html>

在该文件夹下面安装express: 

npm install express

同时创建server.js文件,该文件的代码如下:

var express = require('express')
var app = express()app.get('/getUserInfo/', function (req, res) {var userName = req.query.userNamevar data = {id: 1,userName: userName,gender: '男',}// var result = JSON.stringify(data)// res.writeHead(200, { 'Content-Type': 'application/json' })// res.write(result)// res.end()res.send(data)
})app.listen(8080, function () {console.log('服务器启动')
})

下面启动服务端

同时index.html文件也通过vscode自带的服务器进行访问。

这时会出现如下错误:

Access to XMLHttpRequest at 'http://localhost:8080/getUserNameInfo?name=admin' from origin 'http://127.0.0.1:5500' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

通过以上错误可以发现,现在的程序出现跨域的问题,

下面看一下具体的解决方案: CORS,express中使用CORS的解决方案有2种,

CORS只需要向响应头header中注入Access-Control-Allow-Origin,这样浏览器检测到header中的Access-Control-Allow-Origin,则就可以跨域操作了(同源策略不生效)。

Cross-Site Resource Sharing : 跨域资源共享。

1、直接引入cors,解决跨域问题

var express = require('express')
var app = express()
var cors = express('cors')app.use(cors)
app.get('/getUserInfo/', function (req, res) {var userName = req.query.userNamevar data = {id: 1,userName: userName,gender: '男',}// 需要设置响应头res.setHeader('Access-Control-Allow-Origin', '*')// var result = JSON.stringify(data)// res.writeHead(200, { 'Content-Type': 'application/json' })// res.write(result)// res.end()res.send(data)
})app.listen(8080, function () {console.log('服务器启动')
})

2、直接设置响应头,接收跨域请求的处理

var express = require('express')
var app = express()// `CORS`主要的实现方式是服务端通过对响应头的设置,接收跨域请求的处理。
app.all('*', function (req, res) {res.header('Access-Control-Allow-Origin', 'http://127.0.0.1:5500')res.header('Access-Control-Allow-Methods', 'GEt,POST,PUT')res.header('Access-Control-Allow-Headers', 'Content-Type')res.header('Content-Type', 'application/json;charset=utf-8')req.next()})app.get('/getUserInfo/', function (req, res) {var userName = req.query.userNamevar data = {id: 1,userName: userName,gender: '男',}// var result = JSON.stringify(data)// res.writeHead(200, { 'Content-Type': 'application/json' })// res.write(result)// res.end()res.send(data)
})app.listen(8080, function () {console.log('服务器启动')
})

结果:

express使用cors跨域相关推荐

  1. cors跨域资源共享】同源策略和jsonp

    在执行下面那段代码的时候,我遇到了一个跨域资源共享的问题 <!doctype html> <html> <head> <meta charset=" ...

  2. spring MVC cors跨域实现源码解析

    spring MVC cors跨域实现源码解析 名词解释:跨域资源共享(Cross-Origin Resource Sharing) 简单说就是只要协议.IP.http方法任意一个不同就是跨域. sp ...

  3. CORS跨域实现思路及相关解决方案

    CORS跨域实现思路及相关解决方案 参考文章: (1)CORS跨域实现思路及相关解决方案 (2)https://www.cnblogs.com/safoie/p/10547788.html 备忘一下.

  4. SpringBoot解决cors跨域问题

    2019独角兽企业重金招聘Python工程师标准>>> 前段时间项目在集成sosoapi进行发布后,导致cors跨域接口无法测试访问,用如下代码解决即可 /*** 解决cors跨域问 ...

  5. Spring boot 和Vue开发中CORS跨域问题

    1. 遇到的问题: 我用spring-boot 做Rest服务,Vue做前端框架,用了element-admin-ui这个框架做后台管理.在调试的过程中遇到了如下错误: Preflight respo ...

  6. Cors 跨域Access-Control-Allow-Origin

    1.Access-Control-Allow-Origin 指定格式 The Origin header field has the following syntax:origin = "O ...

  7. corspost请求失败_vue项目CORS跨域请求500错误,post请求变options请求

    vue项目CORS跨域请求500,post请求变options请求,到底是什么情况. 提示:以下内容是一个非专业开发的我对跨域的理解,并不10分准确. 一.先介绍为什么明明发送的是Post请求,为什么 ...

  8. CORS 跨域 实现思路及相关解决方案(转:http://www.cnblogs.com/sloong/p/cors.html)

    本篇包括以下内容: CORS 定义 CORS 对比 JSONP CORS,BROWSER支持情况 主要用途 Ajax请求跨域资源的异常 CORS 实现思路 安全说明 CORS 几种解决方案 自定义CO ...

  9. Web API 实现JSONP或者安装配置Cors跨域

    前言 照理来说本节也应该讲Web API原理,目前已经探讨完了比较底层的Web API消息处理管道以及Web Host寄宿管道,接下来应该要触及控制器.Action方法,以及过滤器.模型绑定等等,想想 ...

最新文章

  1. 舍友清华博士毕业,我建议他留在高校
  2. 创建squashfs.img文件挂载失败
  3. ubuntu 14.04 samba 的 配置
  4. liferay6.2 struts2 request.getparameter取值为null
  5. C# 三层级架构问题之 能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件
  6. keepalived 原理,安装,配置
  7. Python 获取重定向url
  8. 服务器端的JavaScript
  9. linux查看服务命令是什么,linux系统查看所有服务的命令
  10. Linux 中安装软件报缺少共享库文件的错误
  11. logback的日志文件中出现大量的ESC符号
  12. 【matlab】人工智能的仿生优化算法之萤火虫算法讲解(Firefly Algorithm)
  13. 【机器人学】当前工业机器人应用中的机械结构设计方法分析
  14. 秒杀抢红包的思考和总结
  15. 一文了解下一代互联网核心技术HTTP/3及技术发展
  16. 全球50大最重要互联网人物
  17. 关于xftp和xshell 软件评估期已过的解决办法
  18. 第2关:求2个数的和
  19. 微信小程序解包wxappUnpacker-master 样式解不出来 SyntaxError: Unexpected end of input 的解决方式
  20. 野生程序员的折腾—残酷的磨砺让我更加锋利(二)

热门文章

  1. sql查询重复数据且显示出不同数据的重复次数并且排序
  2. vivo手机无法获取日志的问题
  3. 摩根大通公布2021年AI研究博士生奖学金名单!获奖华人博士生占1/3
  4. 期权交易中的做市商制度
  5. Online Mall System
  6. keras Layer
  7. python抽签代码_python如何处理抽签抽奖算法
  8. 计算机网络协议哪些要素组成,网络协议的组成要素是什么
  9. CMU 15213:malloc笔记和malloc实验
  10. 华为近场通讯nfc在哪里打开_华为手机如何开启NFC功能? 来学习吧