クロスドメインWebAPIの

(複数のクロスドメインをサポートしていないドメイン名)<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

    http://www.cnblogs.com/landeanfen/p/5177176.html#_labelTop

         https://www.cnblogs.com/tpfOfBlog/p/6709260.html

おすすめ

転載: www.cnblogs.com/X-Jonney/p/12175824.html