我有CORS工作在我目前的项目,虽然有一件事我似乎无法正常工作是饼干.
现在我得到的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,beforeSend: function(xhr){ xhr.withCredentials = true; } }; $.ajax(ajaxOptions);
您可以在这里了解更多:jQuery: sending credentials with cross-domain posts?