2015-11-06 3 views
2

В настоящее время я создаю проект MVC 6 (бета-версия 8), который включает в себя некоторые API. Наряду с этим это приложение Word, которое поддерживает эти API (только методы GET в настоящее время), однако все мои ajax получают запросы JSON из результата приложения Word в «Ошибка: доступ запрещен». сообщение.Не удается получить доступ к API MVC 6

После долгих поисков я считаю, что это может быть проблемой CORS, так что я позволил это в моем startup.cs, добавив следующее в ConfigureServices:

services.AddCors(options => 
     { 
      options.AddPolicy("AllowAllOrigins", builder => builder.AllowAnyOrigin()); 
     }); 

, а затем

app.UseCors("AllowAllOrigins"); 

в Настроить, но это не имеет значения, я все же просто получаю сообщение об отказе доступа. Я попытался регулировать свои варианты CORS, чтобы все методы и пробовал различные другие варианты, в том числе добавления

[EnableCors("AllowAllOrigins")] 

на действия, но опять же это не имеет никакого значения.

Я выполняю оба проекта локально и вручную перемещаясь к api через браузер, возвращает результаты без проблем, как и моя настройка swashbuckler.

Я пропустил что-то очевидное здесь?

+0

Возможно, я решил это. Мое приложение MVC работало как HTTP, но проект офисного приложения по умолчанию в VS2015 создается с включенным SSL. Теперь превращение SSL в офисное приложение позволяет мне подключаться без проблем. –

ответ

0

По моему опыту, некоторые браузеры не позволяют отклика подстановочного знака разрешать происхождение, когда по SSL-соединению (что вы получаете, когда используете AllowAllOrigins). Если вам нужен трафик для перехода по SSL, вам нужно ответить списком разрешенных источников, а не подстановочным знаком.

This answer имеет хороший подход.