1
我正在使用jQuery阿贾克斯如下跨域请求,从我的网站ASMX服务:CORS预检OPTIONS请求返回错误,但仍然POST发送
$j.ajax({
url: svcURL,
type: "POST",
data: xml,
contentType: "text/xml",
dataType: "text",
success: function(d) {
alert(d);
},
error: function(a, b, c) {
alert("error");
}
});
这POST
请求由之前一个OPTIONS
请求,该请求目前没有配置该服务,所以它返回500 (Internal Server Error)
或405 (Method Not Allowed)
。
接收此错误后,我希望浏览器然后忽略POST
请求并返回一个错误,但是:
在铬& IE的POST
请求仍发送(该服务配置是否正确处理)并收到答复。
在FirefoxPOST
只是返回一个错误。
有人可以解释为什么这可以在Chrome中工作的原因吗?我预料它会表现Firefox的行为。
感谢您提前提供任何帮助。
您确定OPTIONS请求是否真的被触发?你看到它在网络选项卡或萤火虫中返回响应吗? – monsur
是的,我可以看到OPTIONS请求在控制台/提琴手中发送。使用我正在使用的当前服务,我收到了405错误响应。随后的POST在Chrome中运行,但在Firefox中返回错误。 – woodstock365
我有一个测试CORS请求的页面。当我尝试使用Content-Type:text/xml进行POST请求时,出现以下错误: http://client.cors-api.appspot.com/client#?client_method=POST&client_credentials=false&client_headers=Content-键入%3A%20text%2Fxml&server_enable = true&server_status = 200&server_credentials = false&server_methods = POST&server_tabs = local 您是否看到相同的行为?请注意,Chrome浏览器的网络浏览器如何拒绝OPTIONS请求。 – monsur