2017-04-14 6 views
0

CORS for my Web APIを有効にする必要があり、Framework 4.5にアップグレードできません。 私はそれが働いたかどうかを確認するために私のWeb.configファイルに以下を追加しようとしましたが、それはしませんでした:CORS for Web API 1、.net 4.0を有効にする際の問題

<add name="Access-Control-Allow-Origin" value="*" /> 
<add name="Access-Control-Allow-Headers" value="Accept,Content-Type,X-Requested-With"/> 

を私はAJAX呼び出し

からURL http://localhost:8484/api/values/にアクセスし、怒鳴るエラーを取得しています

XMLHttpRequestはhttp://localhost:8484/api/valuesをロードできません。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。したがって、原点「ヌル」はアクセスが許可されません。応答は、HTTPステータスコード405

+0

あなたは[OPTIONSのプリフライトリクエスト動詞](http://stackoverflow.com/questions/22495240/iis-hijacks-cors-preflight-options-request) –

答えて

3

:これらは、以下を含みます。 それは基本的にはあなたのGlobal.asax.cs

protected void Application_BeginRequest(object sender, EventArgs e) 

{ 

    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, DELETE"); 
     HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", 
        "Content-Type, Accept"); 
     HttpContext.Current.Response.End(); 
    } 
} 

refにこの機能を追加1. を.NET 4.0に、あなたはそれ以上の年齢のVisual Studio 2010で立ち往生している場合は特にうまく働いていた、そしてもちろんウェブAPI。リンク:答えの下のコメントにスクロールする必要があります。 http://www.codeguru.com/csharp/.net/net_asp/using-cross-origin-resource-sharing-cors-in-asp.net-web-api.html

+1

その私のために働いたおかげで、問題を取得しています:) – Shashikant

0

ウェブAPI 1.0を持っていた、あなたがGlobal.asax.csファイルのApplication_BeginRequestイベントハンドラに次の文を使用してCORSサポートを有効にする必要があります。

HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", allowedOrigin); 

CORSのサポートは、3つのレベルで有効にすることができます。私はcharanjitのシンによってこの単純な解決策を見つけ

アクションレベル コントローラレベル グローバルレベル

refer link

関連する問題