这两天遇到一个问题,发送post请求时浏览器先发送了一个options请求,给我报错了。

headers添加了token之类的自定义属性,或者Content-Type不是text/plain, multipart/form-data, application/x-www-form-urlencoded 这三个之一的话就会发送options请求。

解决办法
在网上搜了好久都是叫后台处理,但是,我他妹的这个后台级别太低了,不想也不会处理这个问题。
最后找到解决办法是。

解决跨域的时候使用浏览器右键->属性->目标 最后添加‘ --args --disable-web-security --user-data-dir="C:/ChromeDevSession"’
注意:引号没有,最前面有个空格。

image

跨域之后如何携带cookie:
同源ajax请求是可以自动携带cookie的
而非同源需要客户端和服务端都做处理:
1.客户端需要对xhr对象设置withCredentials:true
2.服务端需要设置响应头 access-control-allow-credentials:true
              同时必须指明  access-control-allow-origin 为服务方的origin, 不能为*

如果还不行,chroome需要配置一下
chrome://flags/
image


听风语
73 声望0 粉丝