ajax传cookie,为什么jQuery的.ajax()方法不发送会话cookie?

3ab2bce53867d1c91d029a806de752e6.png

慕森王

我是在跨域的情况下操作。在登录期间,远程服务器将返回set-cookie头以及Access-Control-Allow-Credentials设定为真。下一个对远程服务器的Ajax调用应该使用此cookie。CORS‘sAccess-Control-Allow-Credentials是否允许跨域日志记录。查帐https:/developer.mozilla.org/en/HTTP_Access_Control举个例子。对我来说,这似乎是JQuery中的一个bug(或者至少在下一个版本中是将要出现的特性)。最新情况:Cookie不会从Ajax响应中自动设置(引用:http:/aleembawany.com/2006/11/14/剖析-设计良好-ajax-登录-体验/)为什么?您无法从响应中获得cookie的值来手动设置它(http:/www.w3.org/tr/xmlHttpRequest/#dom-XMLHttpRequest-getresponseHeader)我很困惑.。应该有办法问jquery.ajax()设置XMLHttpRequest.withCredentials = "true"参数。答:你应该用xhrFields副词http://api.jquery.com/jQuery.ajax/文档中的示例如下:$.ajax({

   url: a_cross_domain_url,

   xhrFields: {

      withCredentials: true

   }});服务器正确地响应此请求也很重要。在这里复制@Frédéric和@Pebbl的精彩评论:Important note: when responding to a credentialed request, server must specify a domain, and cannot use wild carding. The above example would fail if the header was wildcarded as: Access-Control-Allow-Origin: *因此,当请求是:Origin: http://foo.exampleCookie: pageAccess=2服务器响应时应:Access-Control-Allow-Origin: http://foo.exampleAccess-Control-Allow-Credentials: true[payload]否则,负载将不会返回到脚本。见:https:/developer.mozilla.org/en-US/docs/web/HTTP/Access_Control_CORS#request_With_凭据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值