API выдает Cors не на том же сервере

0

Я использую Web API 2. в своем WebApiConfig, у меня это есть.

   private static void EnableCrossSiteRequests(HttpConfiguration config)
    {
        var origin = WebConfigurationManager.AppSettings["origin"];
        var cors = new EnableCorsAttribute(

            origins: "*",
            headers: "*",
            methods: "*");
        config.EnableCors(cors);
    }

Метод регистрации

        public static void Register(HttpConfiguration config)
    {

        config.MapHttpAttributeRoutes();
        config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();

        EnableCrossSiteRequests(config);

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
        config.Filters.Add(new ErrorHandler());
    }

Из моего понимания не следует, чтобы все, что мне нужно, чтобы это работало? Он работал на моем компьютере-разработчике, когда они размещаются вместе. Но теперь один находится на веб-сервере, и API находится на другом веб-сервере.

Я получаю - Origin... не найден в заголовке Access-Control-Allow-Origin.

У меня он установлен, чтобы разрешить все Origin. Я попытался добавить его в веб-конфигурацию и другие методы, размещенные вокруг. Я не понимаю, почему его отрицают?

Передняя часть - угловая, с использованием Ngresource для запросов.

Если я использую вкладку "Сеть" в инструментах chrome dev, ответ на запрос 200 OK, и после этого ничего не происходит. Все время искали решения, ничего не пробовал до сих пор.

Спасибо.

Теги:
asp.net-web-api
cors

1 ответ

0

Из моего понимания не следует, чтобы все, что мне нужно, чтобы это работало?

Неа. Вы должны украсить веб-API-контроллеры/действия, которые вы хотели бы назвать перекрестным доменом с атрибутом [EnableCors]:

[EnableCors(origins: "http://mywebclient.azurewebsites.net", headers: "*", methods: "*")]
public class MyController: ApiController
{
    ...
}

Здесь good read на эту тему.

  • 0
    Я включил его в файле WebAiiConfig, в методе Register. Это должно включить его в глобальном масштабе. Я читал во многих местах, что это как Cors глобально. Я отредактировал свой оригинальный пост, чтобы показать его.
  • 0
    Да, я вижу твой пост. Теперь попробуйте добавить атрибут, как показано в моем ответе на ваш контроллер. Не верь всему, что читаешь :-)
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню