0

dotnet rest Web サービスを利用する Web サイトを書いています。私は両方のプロジェクトを完全に管理しています。

ちょうど今日、投稿 Web サービスを実装しました。Fiddlerで投稿すると機能します。今朝、ウェブサイトからいくつかのテストを実行しましたが、すべて問題ないようでした。私は別の問題(フィドラーで投稿コンテンツを正しく取得する)に取り組み、ブラウザーから投稿に戻りましたが、現在、ウェブサイト全体が CORS の動作を示しています - 空白のリターンなど。エラー

"NetworkError: 405 Method Not Allowed - http://localhost:50122/MyService/ListMarkers"

ウェブサイトのコードは次のとおりです。

 function postAjax(){
    var markers = 
    { "listmarkers":
    [{ "position": "128.3657142857143", "markerPosition": "7" },
                   { "position": "235.1944023323615", "markerPosition": "19" },
                   { "position": "42.5978231292517", "markerPosition": "-3" }]
    };

    $.ajax({
        type: "POST",
        url: window.url + "/PocShimService.svc/ListMarkers",
        // The key needs to match your method's input parameter (case-sensitive).
        data: JSON.stringify(markers),
        //data: markers,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data){alert(data);},
        failure: function(errMsg) {
            alert(errMsg);
        }
    });

}

アクセス制御に関係するサーバー構成は次のとおりです。

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Content-Type" />
  </customHeaders>
</httpProtocol>

何か案は?提案?

4

1 に答える 1

1

ドメイン名が WCF とクライアント アプリで同じ場合は、window.urlの代わりにwindow.location.originを試す必要があります。あなたのajaxリクエストは次のようになります

$.ajax({
    type: "POST",
    url: window.location.origin + "/PocShimService.svc/ListMarkers",
    // The key needs to match your method's input parameter (case-sensitive).
    data: JSON.stringify(markers),
    //data: markers,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(data){alert(data);},
    failure: function(errMsg) {
        alert(errMsg);
    }
});
于 2013-10-13T20:52:45.150 に答える