0

JQUERY で RESTFULL サービスへの PUT リクエストを作成しようとすると、localhost (http://localhost/Domain) を使用して URL へのリクエストを作成しようとすると、リクエストが機能します。ただし、URL を一部の IP (http://192.123.32.3) に変更すると、サーバーでの操作は開始されません。

$.ajax({
    type: "PUT",
    url: urlOperation,
    dataType: "json",
    contentType: "application/json",
    data: $.toJSON(submitVote),        success: function (result) 
    {
      alert('Great ...');

    }
});

Chrome のエラーは「メソッド PUT は Access-Control-Allow-Methods では許可されていません」です。

私は Application_beginRequest イベントに put パーミッションを追加してこれを解決しようとしました:

private void EnableCrossDmainAjaxCall()
        {
            HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
            if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
            {
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST, PUT");
                HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Accept");
                HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
                HttpContext.Current.Response.End();
            }
        } 

jquery.Ajax のドキュメントを読んだ後、プロパティ crossDomain='true' を追加してみましたが成功しませんでした。

感謝と敬意

4

1 に答える 1

1

ブラウザは、クロスドメイン リクエストをブロックするためにできる限りのことを行います。ajax リクエストに iframe を使用することも、ページが実行されているサーバーを使用してリクエストをプロキシすることもできます。

jQuery が crossDomain='true' を処理する方法を確認できます。iframe が含まれていない場合、すべてのブラウザーで機能するとは限りません。

于 2011-09-16T03:02:51.907 に答える