小编典典

为什么jquery的.ajax()方法不发送我的会话cookie?

ajax

通过$.ajax()站点登录后,我尝试$.ajax()向该站点发送第二个请求-
但是,当我检查使用FireBug发送的标头时,请求中不包含会话cookie。

我究竟做错了什么?


阅读 257

收藏
2020-07-26

共1个答案

小编典典

如果您要调用的URL与您的调用脚本位于同一域中,则AJAX调用仅发送Cookie。

这可能是跨域问题。

也许您www.domain-a.com是在调用脚本打开时尝试从url
调用的www.domain-b.com(换句话说:您进行了跨域调用,在这种情况下,浏览器将不会发送任何cookie来保护您的隐私)。

在这种情况下,您可以选择:

  • 编写一个小型代理,该代理位于域b上,并将您的请求转发到域a。您的浏览器将允许您调用代理,因为它与调用脚本位于同一服务器上。
    然后,您可以配置此代理以接受可以发送到domain-
    a的cookie名称和值参数。但是,要使其正常工作,您需要知道cookie的名称,并在域上对服务器进行估价-想要进行身份验证。

  • 如果您要获取JSON对象,请尝试使用JSONP请求。jQuery支持这些。但是您需要在domain-a上更改服务,以便它返回有效的JSONP响应。

很高兴,即使有帮助。

2020-07-26