У меня много проблем с получением запроса POST для перекрестного домена, чтобы попасть в контроллер Api в последней версии бета-версии 2.
Chrome (и другие браузеры) выплюнул:
OPTIONS http://api.hybridwebapp.com/api/values 400 (Bad Request)
POST http://api.hybridwebapp.com/api/values 404 (Not Found)
Он может быть связан с этой проблемой, но я применил это обходное решение и ряд других исправлений, таких как web.config здесь
Я некоторое время стучал головой об этом, поэтому я создал решение, чтобы точно воспроизвести проблему.
Загрузите веб-приложение, там будет две кнопки для GET для POST, и ответ появится рядом с кнопкой. GET работает. Не удается вернуть POST.
Я могу получить намек на причину от Fiddler, но это бессмысленно, потому что если вы посмотрите на ответ, то он включает домен в заголовок Access-Controll-Allow-Origin:
В решении под названием "ConfigurationScreenshots" есть папка с несколькими скриншотами конфигурации IIS (привязки веб-сайтов) и конфигурациями свойств проекта, чтобы сделать это как можно проще, чтобы помочь мне:)
EDIT: не забудьте добавить эту запись в файл хоста (% SystemRoot%\system32\drivers\etc):
127.0.0.1 hybridwebapp.com api.hybridwebapp.com
** СТАТУС: ** Кажется, что некоторые браузеры, такие как Chrome, позволяют мне приступать к POST независимо от сообщения об ошибке в ответе OPTIONS (в то время как другие, такие как Firefox, не работают). Но я не считаю, что это решено.
Посмотрите на скриншоты Fidler запроса OPTIONS, у которого есть
Access-Control-Allow-Origin: http://hybridwebapp.com
И все же ошибка:
Происхождение http://hybridwebapp.com не разрешено
Это совершенно противоречиво, как будто он игнорирует заголовок.