fetch默认携带cookie

下面是MDN上的说明,fetch如果不设置credentials参数默认是不会携带cookie的。

默认情况下,fetch 不会从服务端发送或接收任何 cookies, 如果站点依赖于用户 session,则会导致未经认证的请求(要发送 cookies,必须设置 credentials 选项)。

但是经过实际实验,fetch不设置credentials属性是可以携带cookie的...只有设置credentials为omit才不会携带cookie。

有没有大佬能解释下...

阅读 8.7k
1 个回答

注意仔细阅读官方文档

omit: 从不发送cookies.
same-origin: 只有当URL与响应脚本同源才发送 cookies、 HTTP Basic authentication 等验证信息.(浏览器默认值,在旧版本浏览器,例如safari 11依旧是omit,safari 12已更改)
include: 不论是不是跨域的请求,总是发送请求资源域在本地的 cookies、 HTTP Basic authentication 等验证信息.

默认值是:同源的时候发送,不同源的时候不发送。并且这个默认值在不同的浏览器中同一浏览器不同版本中都不同,Safari 11是完全不发送,Safari 12是现在的默认值。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题