2016-11-08 17 views
0

JS/AjaxからWebAPIへのリクエストを作成しようとして問題があります。 2400 srv02で公開されて私のウェブサイト::私の解決策では、私はsrv02に公開されたWeb APIを持って、私はページhttp://srv02:2300/all-requests.aspxに移動すると2300CORS for ASP.NETを許可する方法

、ページが来ることになっているデータを除いて罰金をロードしています

と、私はエラーを取得しています私のAPI形成:

XMLHttpRequest cannot load http://srv02:2400/api/requests/find/1. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://srv02:2300' is therefore not allowed access. The response had HTTP status code 400. 

をしかし、私はURL http://srv02:2400/api/requests/find/1を取り、ブラウザに貼り付けた場合、それは私に正しいJSONのリストを取得しています!次adddingで私のWebApiConfig.csの更新パッケージMicrosoft.AspNet.WebApi.Cors

  • をインストール

    1. :それは私のことでAPIにhereをお勧めしますよう

      私はグローバルCORSを有効にしてみました:

      var cors = new EnableCorsAttribute( "http://srv02:2400"、 ""、 ""); config.EnableCors(cors);

    しかし、これは機能しませんでした。私は前に述べたようにAjaxが

    $.ajax({ 
         url: "http://srv02:2400/api/requests/find/" + id, 
         type: "GET", 
         dataType: 'json', 
         contentType: 'application/json', 
         success: function (requests) { 
          console.log('success'); 
         }, 
         error: function (err) { 
          if (err) { 
           console.log(err); 
          } 
         } 
        }); 
    

    をreqeustsとして、私は私の要求をしています

    私はそれがhereをお勧めしますようJSONPするJSONを変更しようとしましたが、それはうまくいきませんでした。

    ここでどのように問題を解決するかについてのあらゆるアイデア。

    ありがとうございました!

  • 答えて

    1

    グローバル属性が正しくありません。

    あなたは2つのことを変えたいと思います。

    • あなたのCORSのURLは:2300ない:2400、すなわち許可したいアプリケーション(ないあなたのAPIのURL)のURLである必要があります。
    • 有効なヘッダーとメソッド(動詞)が選択されていません。ここで特定の値を使用するか、*を使用する必要があります(これをグローバルに適用する場合はおそらくもっと意味があります)。

    例えば次のようにしたい:

    var cors = new EnableCorsAttribute("http://srv02:2300", "*", "*"); 
    config.EnableCors(cors); 
    

    これは、彼らがその[OK]を、任意の動詞やヘッダとhttp://srv02:2300/*からこのAPIを呼び出したい場合は、その(OPTIONS応答を使用して)ブラウザに指示する必要があります。別のドメインがこのAPIを呼び出そうとすると、それは問題ありません。

    +0

    oh ..私の悪いです。それは正しい – Riad

    +0

    ありがとうございます! – Riad

    +0

    @riad問題ありません –

    関連する問題