这里我通过jquery ajax调用传递一个http请求头值。它只适用于IE而不能在Firefox中工作。当代码中有xhr.setRequestHeader
时,在Firefox中没有发生ajax调用本身
var Call = function () {
$.support.cors = true;
var input = {
RefId: "111", LoginId: "222", Id: "33", FirstName: "aaa", LastName: "bbb"
};
var url = document.URL;
$.ajax({
type: "POST",
beforeSend: function (xhr) {
xhr.setRequestHeader("URL", url);
},
url: "http://localhost:40780/Service.svc/Insertion",
data: JSON.stringify(Input),
contentType: "application/json",
dataType: "json",
success: function (response) {
alert(response);
},
error: function (xhr, status, error) {
}
});
}
有什么建议吗?
答案 0 :(得分:0)
我想我的原因可以通过客户端和服务器处理CORS和预检请求的方式在这里找到:
http://www.html5rocks.com/en/tutorials/cors/
来自JQuery的CORS
JQuery的$ .ajax()方法可用于制作常规XHR和CORS 要求。关于JQuery实现的一些注意事项:
JQuery的CORS实现不支持IE的XDomainRequest对象。但是有一些JQuery插件可以实现这一点。看到 http://bugs.jquery.com/ticket/8283了解详情。 如果浏览器支持CORS,则$ .support.cors布尔值将设置为true(在IE中返回false,请参阅上面的项目符号)。这个可以 快速检查CORS支持。
headers: {
// Set any custom headers here.
// If you set any non-simple headers, your server must include these
// headers in the 'Access-Control-Allow-Headers' response header.
},
希望这会有所帮助