Как включить CORS в asp.net Self-Hosted API? - PullRequest
0 голосов
/ 09 февраля 2019

Я создал один самодостаточный веб-API в asp.net, он прекрасно работает, когда я вызываю его из POSTMAN, но выдает ошибку ниже, когда я вызываю его из браузера.

Доступ к XMLHttpRequest на 'http://localhost:3273/Values/GetString/1' из источника 'http://localhost:4200' было заблокировано политикой CORS: Нет' Access-Control-A

Ниже приведен мой класс обслуживания

using System.Web.Http;
using System.Web.Http.SelfHost;

namespace SFLSolidWorkAPI
{
    public partial class SolidWorkService : ServiceBase
    {
        public SolidWorkService()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            var config = new HttpSelfHostConfiguration("http://localhost:8069");


            config.Routes.MapHttpRoute(
               name: "API",
               routeTemplate: "{controller}/{action}/{id}",
               defaults: new { id = RouteParameter.Optional }
           );

            HttpSelfHostServer server = new HttpSelfHostServer(config);
            server.OpenAsync().Wait();
        }

        protected override void OnStop()
        {
        }
    }

}

1 Ответ

0 голосов
/ 11 февраля 2019

Здесь

Я нашел решение этой проблемы после стольких исследований.Вам просто нужно установить Microsoft.AspNet.WebApi.Cors и использовать его как config.EnableCors(new EnableCorsAttribute("*", headers: "*", methods: "*"));

Надеюсь, это поможет другим.

Спасибо

using System;
using System.ServiceProcess;
using System.Web.Http;
using System.Web.Http.Cors;
using System.Web.Http.SelfHost;

namespace SFLSolidWorkAPI
{
    public partial class DemoService : ServiceBase
    {
        public DemoService ()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            var config = new HttpSelfHostConfiguration("http://localhost:8069");


            config.Routes.MapHttpRoute(
               name: "API",
               routeTemplate: "{controller}/{action}/{id}",
               defaults: new { id = RouteParameter.Optional }
           );
            config.EnableCors(new EnableCorsAttribute("*", headers: "*", methods: "*"));

            HttpSelfHostServer server = new HttpSelfHostServer(config);
            server.OpenAsync().Wait();
        }

        protected override void OnStop()
        {
        }
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...