У меня MVC 5 ViewController, который не принимает заголовки от вызова Ajax. Источник вызова ajax - это другой веб-сайт, а не контроллер.
Вызов Ajax выглядит так:
window.jQuery.ajax({
url: 'http://localhost:54155/TestView',
headers: {'Authorization': 'token'},
cache: false,
contentType: 'application/json; charset=utf-8',
method: 'Get',
dataType: 'json',
data: {}
}).success(alert('succes?'))
.error(alert('failed'))
});
Cors включен на стороне контроллера:
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Headers" value="*"/>
<add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" />
</customHeaders>
</httpProtocol>
И я пытаюсь добраться до этого контроллера:
public class TestViewController : Controller
{
public ActionResult Index()
{
var keys = Request.Headers.AllKeys;
return View();
}
}
Если я отправлю запрос в WebApi на основе контроллера WEP API 2, заголовки в порядке. Если я отправлю запрос с почтальоном на контроллер mvc, то с заголовками тоже все в порядке.
Заголовки содержат заголовок Access-Control-Request-Headers, который имеет значение авторизации. Но Request.Headers ["Authorization"] является нулевым.
Пользовательские заголовки, такие как X-MyHeader, отображаются как значения из Access-Control-Request-Headers, но при использовании в качестве ключа все они равны нулю.
Какую часть мне не хватает?