(複数のクロスドメインをサポートしていないドメイン名)<system.webServer>ノードのWeb.configで第一の構成
1 <httpProtocol> 2 <customHeaders> 3 <名前= "アクセス制御-許可-起源"値を追加= "のhttp:// localhostを:31551" /> 4 <名前= "アクセス制御-許可-ヘッダー"値を追加= "*" /> 5 <名前= "アクセス制御-許可-メソッド"値= "GET、POST、PUT、DELETE" />を追加 6 </ customHeaders> 7 </ httpProtocol>を
プロジェクトNuGetのインストールmicrosoft.aspnet.webapi.corsで使用される第二のアプローチ、(ドメインにまたがる複数のドメイン名をサポートしています)
あなたがSystem.FieldAccessExceptionが発生した場合:メソッド "System.Web.Http.GlobalConfiguration..cctor()" フィールドにアクセスしようとする試み "System.Web.Http.GlobalConfiguration.CS $ <> 9__CachedAnonymousMethodDelegate2" に失敗しました。
Microsoft.AspNet.WebApi 2がインストールされていないため、この問題は、私はここに、インストール後に、問題はありません
その後、App_Start挟まれたクロスドメイン1.はWebApiConfig.csファイルフォルダの下に配置されました
図2は、構成ファイルで提供され、その後、設定ファイルを読み込むことができます
appSettingsに配置されたノード
1 <追加キー= "cors_allowOrigins"値= "のhttp:// localhostを:31551は、http:// localhostを:6449" /> 2 <追加キー= "cors_allowHeaders"値= "*" /> 3 <追加キー=」 cors_allowMethods」値= "*" />
その後、次のWebApiConfig.csファイルフォルダApp_Startクロスドメイン構成にクリップ
1 public static void Register(HttpConfiguration config) 2 { 3 //跨域配置 4 //config.EnableCors(new System.Web.Http.Cors.EnableCorsAttribute("http://localhost:31551,http://localhost:6449", "*", "*")); 5 6 var allowOrigins = ConfigurationManager.AppSettings["cors_allowOrigins"]; 7 var allowHeaders = ConfigurationManager.AppSettings["cors_allowHeaders"]; 8 var allowMethods = ConfigurationManager.AppSettings["cors_allowMethods"]; 9 var globalCors = new System.Web.Http.Cors.EnableCorsAttribute(allowOrigins, allowHeaders, allowMethods); 10 config.EnableCors(globalCors); 11 12 config.Routes.MapHttpRoute( 13 name: "DefaultApi", 14 routeTemplate: "api/{controller}/{action}/{id}", 15 defaults: new { id = RouteParameter.Optional } 16 ); 17 }
3.如果你只想对某一些api做跨域,可以直接在API的类上面使用特性标注即可。
先在App_Start文件夹下面的WebApiConfig.cs启用Cors
然后在接口前面加上标注就行了
1 [System.Web.Http.Cors.EnableCors(起源: "HTTP:// localhostを:31551"、ヘッダー: "*"、メソッド"GET、POST、PUT、DELETE")] 2つのパブリッククラスChargingController:ApiController 3 { 4 /// <要約> 5 ///得到所有数据 6 /// </要約> 7 /// <戻る>返回数据</戻り> 8 [HTTPGET] 9パブリックストリングGetAllChargingData() 10 { 11リターン"成功"; 12} 13}
参考 http://www.cnblogs.com/moretry/p/4154479.html