在开发中使用fetch跨域中碰到的问题

Feb 14, 2017 00:00 · 410 words · 1 minute read js fetch axios

CORS(Cross-origin resource sharing) “跨域资源共享”

后端接口中,需要进行权限校验,分别放在了headers中的 authorizationContent-Type中。 当进行跨域访问的时候,发现这两者都不见了。正常的头会因为跨域影响。

fetch.js 常见坑

  • Fetch 请求默认是不带 cookie 的,需要设置 fetch(url, {credentials: ‘include’})
  • 如果是非简单请求跨域时使用了mode: 'cors',所有的头 都会加上Access-Control-xx
  • 请求方法是put,或者Content-Type字段的类型是application/json 都是非简单请求
  • 如果是简单请求, 其实在浏览器发出请求的时候,是不需要做多余操作的,浏览器发现这次跨源AJAX请求是简单请求,就自动在头信息之中,添加一个Origin字段。Origin字段用来说明,本次请求来自哪个源(协议 + 域名 + 端口)。服务器根据这个值,决定是否同意这次请求。

最后说一句,去用axios吧~~

参考

tweet Share