我想使用POST提供跨域服务。我可以看到预检OPTIONS调用成功,但是当我发布时,cookie不会在Chrome中发送。相同的JavaScript和服务器代码适用于Firefox和Safari。可能是什么问题呢?以下是详细信息:
请求网址:http://j.test.com/Post
请求方法:选项
状态代码:200 OK
请求Headersview来源
接受: /
接收字符集:ISO-8859-1,utf-8; Q = 0.7,*; Q = 0.3
接受编码:gzip,紧缩,SDCH
接受语言:EN-US,EN; Q = 0.8
Access-Control-Request-Headers:origin,x-requested-with,content-type,accept
访问控制请求-方法:POST
连接:保持活跃
主持人:j.test.com
产地:HTTP://www.amazon.com
引用站点:HTTP://www.amazon.com/Gone-Girl-A-Novel-ebook/dp/B006LSZECO/ref=pd_rhf_gw_s_ts_2
User-Agent:Mozilla / 5.0(Windows NT 5.1)AppleWebKit / 536.11(KHTML,与Gecko一样)Chrome / 20.0.1132.47 Safari / 536.11
响应标题
访问控制允许的凭据:真
Access-Control-Allow-Headers:origin,x-requested-with,content-type,accept
访问控制允许方法:POST,OPTIONS
访问控制允许来源:HTTP://www.amazon.com
访问控制 - 最大 - 年龄:1728000
连接:保持活跃
内容长度:0
日期:2012年9月4日星期二16:44:48 GMT
服务器:nginx
我使用jQuery:
jQuery.ajax({
type: "POST",
url: "http://j.test.com/Post",
xhrFields: {
withCredentials: true
},
data: {
referringUrl: document.URL
},
success: function(data) {
},
error: function (responseData, textStatus, errorThrown) {
}
});
答案 0 :(得分:0)
您必须将标记withCredentials设置为true(http://techblog.constantcontact.com/software-development/using-cors-for-cross-domain-ajax-requests/)
答案 1 :(得分:0)
您的crossDomain: true
来电可能还需要jQuery.ajax()
。