jQueryAjax总是使用CORS抛出错误

jQueryAjax总是使用CORS抛出错误,jquery,ajax,cors,Jquery,Ajax,Cors,只是澄清一下,因为我无法在标题中填入足够的信息 我正在做一个跨网站的要求,并坚持CORS,所有的工作。浏览器发送一个选项请求,“我的服务”以少量接受标题响应,然后浏览器接受200响应并发送帖子。如果您不需要标题输出的任何信息,请随时跳过标题输出: 初始选项请求: OPTIONS http://localhost:1837/authentication HTTP/1.1 Host: localhost:1837 User-Agent: Mozilla/5.0 (Windows NT 6.1; WO

只是澄清一下,因为我无法在标题中填入足够的信息

我正在做一个跨网站的要求,并坚持CORS,所有的工作。浏览器发送一个选项请求,“我的服务”以少量接受标题响应,然后浏览器接受200响应并发送帖子。如果您不需要标题输出的任何信息,请随时跳过标题输出:

初始选项请求:

OPTIONS http://localhost:1837/authentication 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: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
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
Origin: http://localhost:6879
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with
Pragma: no-cache
Cache-Control: no-cache
选项响应:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 30 Jun 2011 09:50:43 GMT
X-AspNet-Version: 4.0.30319
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
Access-Control-Max-Age: 1000
Access-Control-Allow-Headers: CONTENT-TYPE, x-requested-with
Access-Control-Allow-Origin: http://localhost:6879
X-AspNetMvc-Version: 3.0
Cache-Control: private
Content-Length: 0
Connection: Close
后请求:

POST http://localhost:1837/authentication 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
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://localhost:6879/login
Content-Length: 27
Origin: http://localhost:6879
Pragma: no-cache
Cache-Control: no-cache

username=test&password=test
答复后:

HTTP/1.1 200 OK
Server: ASP.NET Development Server/10.0.0.0
Date: Thu, 30 Jun 2011 09:50:43 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
Set-Cookie: .ASPXAUTH=A22B60AC3F317F90A263217B50548A1D43871D43BD84A160C2AC4DCCF4EF33F2E044A9FCEC64AFCF0539652684BF5D1B648F12F92E0788096A9F5BE7036E386D8EE262A6FA6A922446F3C114E6FC1AFB990AADB901B778C7735B4B1EBD6F967EA7B27E5780AFA0037A9BF59B5CBBD78A60DC8E9FDE3D0A0BBB6DEE31B38D62944247F19BF8052B3DCFB6B6AC6DEC886EC5B8FBE23ABBB7485E1767FCCF1DDEF8CC99253F1068C33946A625CD6462EF80B4515B5CDE54E26571C3EB38ACB7DD6B0EDDC9AAD58DA878CB1BC1E5242E8FD2C62FD9FE1DCEE527700E1B68B8BC4BC3DBF5775B3ADD46C728841312DAE1F864E05D61B0375F99AF307831EB210BDA995369FBE2CEC16F5F97EAA3BB1E08E0A2D8DE22EB6DF69F5732946A449D76080297E2CBB0953F941F10778605FBFB9A8B; domain=localhost; expires=Thu, 30-Jun-2011 10:20:43 GMT; path=/
Cache-Control: private
Content-Length: 0
Connection: Close
完成后,将使用statusText“error”调用我的jquery错误回调,xhr包含:

readyState  0
responseText    ""
status  0
statusText  "error"

我有点困惑,因为响应似乎有效,而且xhr甚至不包含任何状态代码。我已经试着查看jquery完整回调和其中的相同细节。以前有人见过这样的吗?哦,我正在使用Firefox,但也在Chrome上进行了测试,同样的问题是:(

您的post响应仍然需要Access Control Allow Origin标头(它是所有CORS响应所必需的,因为HTTP是无状态的)


另外,关于错误报告,我发现浏览器对CORS错误的响应不是很有帮助。希望这在将来会得到解决。

如果其他人对CORS有任何问题,我写的博客文章可能会有所帮助。顺便说一句,我为将CORS与IE和jQuery结合使用提出了建议。可能会有所帮助。