Asp.netに「Access-Control-Allow-Origin」ヘッダーを実装することは可能ですか
enable-cors.org から:
ASP.NET上のCORS
IISを構成するアクセス権がない場合でも、ソースページに次の行を追加することにより、ASP.NETを介してヘッダーを追加できます。
Response.AppendHeader("Access-Control-Allow-Origin", "*");
別のオプションは、web.configに直接追加することです。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="http://www.yourSite.com" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/>
<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
</customHeaders>
</httpProtocol>
... こちら で見つけました
1.インストールパッケージMicrosoft.AspNet.WebApi.Cors
2。このコードをWebApiConfig.cs。に追加します
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.EnableCors();
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
3.これを追加
using System.Web.Http.Cors;
4. Api Controllerにこのコードを追加します(HomeController.cs)
[EnableCors(origins: "*", headers: "*", methods: "*")]
public class HomeController : ApiController
{
[HttpGet]
[Route("api/Home/test")]
public string test()
{
return "";
}
}
要求されたリソースを調べるHTTPモジュールが必要になります。それがcssまたはjsである場合、 '*'で大きく開かない限り、リクエスタURLでAccess-Control-Allow-Originヘッダーを追加します。
サーバーでCORS応答ヘッダーを構成することは、実際にはオプションではありませんでした。クライアント側でプロキシを構成する必要があります。
Angularのサンプル-プロキシサーバーとして機能するproxy.conf.jsonファイルを作成しました。以下にproxy.conf.jsonファイルを示します。
{
"/api": {
"target": "http://localhost:49389",
"secure": true,
"pathRewrite": {
"^/api": "/api"
},
"changeOrigin": true
}
}
Package.jsonと同じディレクトリにファイルを配置し、package.jsonファイルの開始コマンドを次のように変更しました
"start": "ng serve --proxy-config proxy.conf.json"
現在、アプリコンポーネントからのhttp呼び出しは次のとおりです。
return this.http.get('/api/customers').map((res: Response) => res.json());
最後に実行するにはnpm startまたはng serve --proxy-config proxy.conf.jsonを使用します