1

在这里,我通过 jquery ajax 调用传递了一个 http 请求标头值。它仅适用于 IE,不适用于 Firefox。当 xhr.setRequestHeader代码中有ajax 调用本身时,Firefox 中不会发生

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) {
            }
        });
    }

有什么建议吗?

4

1 回答 1

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.
  },

希望这会有所帮助

于 2013-02-21T13:15:59.560 回答