1

xhr.setRequestHeaderここでは、jquery ajax 呼び出しを介して http 要求ヘッダー値を渡しています。IE でのみ動作し、Firefox では動作しません。コードにある場合、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) {
            }
        });
    }

なにか提案を?

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 に答える