通过$.ajax()网站登录后,我试图$.ajax()向该网站发送第二个请求 - 但是当我检查使用 FireBug 发送的标头时,请求中没有包含会话 cookie。
$.ajax()
我究竟做错了什么?
AJAX 调用仅在您调用的 url 与调用脚本位于同一域时发送 Cookie。
这可能是一个跨域问题。
www.domain-a.com也许您在调用脚本打开时尝试调用 url www.domain-b.com(换句话说:您进行了跨域调用,在这种情况下,浏览器不会发送任何 cookie 以保护您的隐私)。
www.domain-a.com
www.domain-b.com
在这种情况下,您的选择是:
编写一个驻留在域-b 上的小型代理,并将您的请求转发到域-a。您的浏览器将允许您调用代理,因为它与调用脚本位于同一台服务器上。 然后,您可以将此代理配置为接受它可以发送到域-a 的 cookie 名称和值参数。但是要使此功能起作用,您需要知道 cookie 的名称并在域中评估您的服务器-a 需要进行身份验证。
如果您要获取 JSON 对象,请尝试使用JSONP请求。jQuery 支持这些。但是您需要更改 domain-a 上的服务,以便它返回有效的 JSONP 响应。
很高兴这有一点帮助。