fetch跨域携带cookie
·
解决跨域问题:
fetch能够设置不同的模式使得申请无效.,模式可在fetch方法的第二个参数对象中定义。
fetch(url, {
mode: ‘cors’
})
能够定义的模式如下:
- same-origin:示意同源能够进行拜访,反之浏览器回绝。
- cors:示意同源和带有cors响应头的跨域能够申请胜利,其余回绝。
- cors-with-forced-preflight:示意在发出请求前,将执行preflight查看。
- no-cors:示意跨域申请不带cors响应头场景,此时的相应类型为opaque,然而在opaque的返回类型中,咱们简直不能查看到任何有价值的信息,比方不能查看response,status, url。
解决跨域携带cookie问题:
fetch方法默认是不携带cookie的,如果需要携带cookie,加上以下字段即可,跨域申请中需要带有cookie时,可在fetch方法的第二个参数对象中增加credentials属性,并将值设置为”include”。
fetch(url,{
credentials: ‘include’
})
除此之外,credentials 还能够取以下值:
- include:发送请求时,包括凭据(如cookie和HTTP认证信息)。
- omit:发送请求时,仅包括同源凭据(如cookie和HTTP认证信息)。
- same-origin:发送请求时,不包括凭据(如cookie和HTTP认证信息)。
同时还需要服务器能够承受跨域发送cookie申请,否则会被浏览器的同源策略阻挡:
1. 服务端需要携带响应头 Access-ControlAllow-Credentials: true。
2. 响应头 Access-Control-Allow-Origin 不能是通配符“*”,并且需要和请求头Origin 的值一致。
更多推荐



所有评论(0)