jquery使用CORS跨域请求时,为什么cookie丢失了。

https://segmentfault.com/q/1010000004509223


1. 我遇到的问题

ajax CORS跨域时,按照网上的xhr.withCredentials介绍进行了正确的设置,但是cookie还是丢失了,问题出在哪里? 请大神过目!!!

2. 代码截图

以下是截图,在客户端和服务端都进行了设置,但是还是没有cookie发送出去。

客户端jquery代码:

jquery使用CORS跨域请求时,为什么cookie丢失了。_第1张图片

服务端php代码:

jquery使用CORS跨域请求时,为什么cookie丢失了。_第2张图片

页面的cookie是有的:

jquery使用CORS跨域请求时,为什么cookie丢失了。_第3张图片

服务端的响应是正确的:

jquery使用CORS跨域请求时,为什么cookie丢失了。_第4张图片

但是请求数据中,没有cookie:

jquery使用CORS跨域请求时,为什么cookie丢失了。_第5张图片

  • 2月29日提问 
  • 评论 
  • 邀请回答 
  • 编辑 
默认排序 时间排序

2个回答

答案对人有帮助,有参考价值 2 答案没帮助,是错误的答案,答非所问

标准的CORS请求不对cookies做任何事情,既不发送也不改变。如果希望改变这一情况,就需要将withCredentials设置为true。

xhr.withCredentials = true;

服务端在处理这一请求时,也需要将Access-Control-Allow-Credentials设置为true

  • 2月29日回答 
  • 1 评论 
  • 编辑
答案对人有帮助,有参考价值 0 答案没帮助,是错误的答案,答非所问

http://netsecurity.51cto.com/art/201311/419179.htm


Jquery 请求加上:

xhrFields:{
withCredentials: true
}


你可能感兴趣的:(Php,开发)