前端跨域的原则

前端跨域的原则与避免途径

1.跨域

  跨域资源共享(Cross-Origin Resource Sharing, CORS)是为解决 Ajax 技术难实现跨域问题而提出的一个规范,这个规范试着从根本上解决安全的跨域资源共享问题。

2.option请求

  option请求是一种探测性的请求,通过这个方法,客户端可以在采取具体资源请求之前,决定对该资源采取何种必要的措施。

3.跨域解决方案

  若要允许跨域,传统的解决方案是服务器端设置 Access-Control-Allow-Origin: *,但是这是一种不安全的方法,新的标准里已经不允许使用了。

  若不解决跨域的话,不知道请求是否可以使用,为解决这个问题标准里增加了一种请求叫做preflighted request,也就是option方法。支持此协议的浏览器发送真正的请求前, 会先发送一个方法为 OPTIONS 的预请求(preflight request), 用于试探服务端是否能接受真正的请求,如果 options 获得的回应是拒绝性质的,比如 404\403\500 等 http 状态,就会停止 post、put 等请求的发出。

4.什么情况会出现option请求

  1. 请求方法不是GET/HEAD/POST;
  2. POST请求的Content-Type并非 application/x-www-form-urlencoded, multipart/form-data, 或text/plain;
  3. 请求设置了自定义的header字段.

5.解决方案

  1. 需要明确前端无法解决并且绕不过去;
  2. 后端处理跨域,绕过此问题;
  3. Nginx配置,需求请自性Google;
  4. 若是简单请求,不要自定义header字段。

6.避免途径

  1. 后端处理;
  2. Nginx配置;
  3. 前端尽量避免自定义header字段;
  4. header里面尽量比曼使用复杂字段,尤其是json;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值