Все запросы на предварительный просмотр от браузеров к моему собственному хостингу OWIN WebAPI не обрабатываются Middleware. Если я сделаю запрос OPTIONS от Postman, они будут обработаны. Почему такое поведение?Запросы предварительной проверки OWIN не обрабатываются
Запрос URL: Метод http://localhost:9000/api/v1/conversations/create?connectionId=13509f44-eacb-4950-8cc8-71bd37098975
Запрос: OPTIONS
Код состояния: 401 Несанкционированное Remote
Адрес: [:: 1]: 9000
Accept: /
Accept-Encoding: GZIP, выкачать, SDCH, уш
Accept-Language: RU-RU, RU, Q = 0.8, EN-US, Q = 0,6, собственная, Q = 0,4
Access-Control -request-заголовки: Content-Type
Access-Control-Request-метод: POST
соединения: держать-жив
Ведущий: локальный: 9000
Происхождение: http://localhost:8080
Referer: http://localhost:8080/
User-Agent: Mozilla/5.0 (Windows NT 10,0; Win64; 64) AppleWebKit/537,36 (KHTML, как Gecko) Chrome/56.0.2924.87 Safari/537,36
Response Заголовки для Chrome:
Content-Length: 0
Дата: Ср, 08 Февраль 2017 4:17:26 GMT
Сервер: Microsoft-HTTPAPI/2,0
WWW-Authenticate: NTLM
заголовки ответа для Почтальон:
Access-Control-Allow-Полномочия → истинного
Access-Control-Allow-Origin → хромированной расширения: // fhbjgbiflinjbdggehcddcbncdddomop
Allow → POST
Content-Length → 76
Content-Type → Applicati вкл/JSON; кодировка = UTF-8
Дата → Ср, 8 февраля 2017 4:21:02 GMT
Сервер → Microsoft-HTTPAPI/2.0
Я добавил поддельный межплатформенное к моему AppBuilder:
public void BuildWebApi(IAppBuilder appBuilder)
{
appBuilder.Use(async (ctx, next) =>
{
await next();
});
и поставить точку останова на строку "ждать следующего()". Таким образом, точка останова не останавливается, когда браузер выполняет предполетный запрос и останавливается в ответ postman OPTIONS.
http://stackoverflow.com/questions/24989769/cors-is-not-working-in-web-api-with-owin-authentication и HTTP: // StackOverflow .com/questions/20079813/how-to-make-cors-authentication-in-webapi-2 могут быть релевантными. Также это, вероятно, поможет, если вы также включили заголовки запроса в свой вопрос. – sideshowbarker
UseCors не работает, потому что он также в фоновом режиме добавляет промежуточное программное обеспечение, которое не вызывается при запросах preflight из Chrome. Конечно, я добавил UserCors() и config.EnableCors(), но это не имеет никакого эффекта. – Argnist
ОК, так http://stackoverflow.com/questions/20079813/how-to-make-cors-authentication-in-webapi-2/25758949#25758949 не помогает? – sideshowbarker