Возможно ли реализовать заголовок Access-Control-Allow-Origin в asp.net
Как реализовать заголовок "Access-Control-Allow-Origin" в asp.net
Ответ 1
От enable-cors.org:
CORS на ASP.NET
Если у вас нет доступа к настройке IIS, вы можете добавить заголовок через ASP.NET, добавив следующую строку к исходным страницам:
Response.AppendHeader("Access-Control-Allow-Origin", "*");
Ответ 2
Другой вариант - добавить его непосредственно в 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>
... Я нашел это в здесь
Ответ 3
1.Install-Package 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 "";
}
}
Ответ 4
Вам понадобится HTTP-модуль, который посмотрел бы на запрошенный ресурс, и если бы он был css или js, он будет ссылаться на заголовок Access-Control-Allow-Origin с URL-адресом запрашивающих, если вы не хотите, чтобы он был широко открыт с помощью ' *".
Ответ 5
Настройка заголовков ответов CORS на сервере не была действительно вариантом. Вы должны настроить прокси-сервер на стороне клиента.
Образец к угловому - Итак, я создал файл proxy.conf.json для работы в качестве прокси-сервера. Ниже представлен мой файл proxy.conf.json:
{
"/api": {
"target": "http://localhost:49389",
"secure": true,
"pathRewrite": {
"^/api": "/api"
},
"changeOrigin": true
}
}
Поместите файл в тот же каталог package.json, после чего я изменил команду start в файле 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