我已经让CORS在我当前的项目中工作,尽管有一件事我似乎无法正常工作,那就是cookie。
现在我得到了cookie,服务器发出并发送它,firefox接受了它,我可以在firebug cookie部分看到它。然而,当我对该服务进行后续调用时,它似乎不会在标头中发送cookie。。。
GET /some/entity/ HTTP/1.1
Host: localhost:1837
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: */*
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://localhost:6879
Origin: http://localhost:6879
我的ajax调用需要做什么特别的事情吗?
var ajaxOptions = {
url: serviceResourceUrl,
type: "get",
dataType: "json",
success: successCallback,
error: failedCallback,
xhrFields: { withCredentials: true }
};
$.ajax(ajaxOptions);
尝试使用beforeSend属性而不是xhrFields。在您的情况下:
var ajaxOptions = {
url: serviceResourceUrl,
type: "get",
dataType: "json",
success: successCallback,
error: failedCallback,
beforeSend: function(xhr){
xhr.withCredentials = true;
}
};
$.ajax(ajaxOptions);
您可以在这里了解更多信息:使用跨域帖子发送凭据?