6

我在用着

xhrFields : { 
  withCredentials: true 
} 

在 jQuery $ajax 调用中,以便在我的查询中发送会话 cookie。

该调用在我的 apache 日志上提供了正确的状态代码(401/200 取决于是否设置了 cookie),但 Firefox 总是收到状态 = 0(即 $.ajax() 中的错误)如果我删除此 xhrFields 部分,状态代码正常(但未发送 cookie)

这是我在 Firefox 中使用 xhrFields 设置收到的响应对象:

{"readyState":0,"responseText":"","status":0,"statusText":"error"}

我的 Apache 配置启用了 CORS,并且还允许 Access-Control-Allow-Credentials(这里是相应的 HTTP 标头)

Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *

AJAX 调用或网络服务器配置中是否缺少某些内容?

注意:这在 Chrome 中运行良好

4

1 回答 1

10

您可能必须比 * 更明确地指定 Access-Control-Allow-Origin 标头。

https://developer.mozilla.org/En/HTTP_access_control#Requests_with_credentials说:

重要提示:在响应凭据请求时,服务器必须指定域,并且不能使用通配符。

于 2012-07-06T19:27:48.270 回答