CORS跨域请求

CORS跨域资源共享

1.使用cors中间件解决跨域问题

cors是express的一个第三方插件,通过安装和配置cors中间件 可以很方便地解决跨域问题
使用步骤分为3步:
1.运行 npm install cors 安装中间件
2.使用const cors=require(‘cors’)导入中间件
3.在路由之前调用app.use(cors())配置中间件

2.什么是CORS

cors(跨域资源共享)由一系列HTTP响应头组成,这些HTTP响应头决定浏览器是否阻止前端JS代码跨域获取资源

浏览器的同源安全策略默认会阻止页面“跨域”获取资源,但如果接口服务器配置了CORS相关的HTTP响应头 就可以解除浏览器的跨域访问限制
在这里插入图片描述在这里插入图片描述5.CORS响应头部 -Access-Control-Allow-Origin

在这里插入图片描述在这里插入图片描述

6.CORS响应头部 -Access-Control-Allow-Headers

默认情况下 cors仅支持客户端向服务器发送如下9个请求头:
Accept、Accept-Language、Content-Language、DPR、Downlink、Save-Data、Viewport-Width、Width、Content-Tyoe(值仅限于text/plain、multipart/form-data、application/x-www-form-urlencoded三者之一)

如果客户端向服务器发送了额外的请求头信息,则需要在服务器端,通过Access-Control-Allow-Headers对额外的请求头进行声明,否则这次请求会失败
在这里插入图片描述

7.CORS响应头部 -Access-Control-Allow-Methods

默认情况下 CORS仅支持客户端发起GET、POST、HEAD请求
如果客户端希望通过PUT、DELETE等方式请求服务器的资源、则需要在服务器端、通过Access-Control-Allow-Methods来指明实际请求所允许使用的HTTP方法
在这里插入图片描述

8.CORS请求的分类

客户端在请求CORS接口时,根据请求方式和请求头的不同,可以将CORS的请求分为两大类,分别是:
1.简单请求
在这里插入图片描述

2.预检请求
在这里插入图片描述
简单请求和预检请求的区别
简单请求的特点:客户端和服务器之间只会发生一次请求
预检请求的特点:客户端和服务器之间会发生两次请求,OPTION预检请求成功之后,才会发起真正的请求

回顾JSONP的概念与特点

概念:浏览器通过<script>标签的src属性,请求服务器上的数据,同时,服务器返回一个函数的调用。这种请求数据的方式叫做JSONP

特点:
1.jsonp不属于真正的Ajax请求,因为它没有使用XMLHttpRequest这个对象
2.JSONP仅支持GET请求,不支持POST、PUT、DELETE等请求

2.创建JSONP接口的注意事项

如果项目中已经配置了CORS跨域资源共享,为了防止冲突,必须在配置CORS中间件之前声明JSONP的接口,否则JSONP接口会被处理成开启了CORS的接口。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

临夏_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值