Я использую jquery, чтобы сделать ajax-вызов метода веб-API asp.net, который использует токен авторизации для аутентификации запросов. Здесь вызов Ajax:Ajax Call To Web API
$.ajax({
url: targetUrl,
type: 'GET',
beforeSend: function(xhr){
xhr.setRequestHeader("Authorization", "Basic " + btoa(token + ":" + password));
},
success: function (data) {
// do stuff
}
});
Этот вызов приводит к 405 Method Not Allowed
для метода OPTIONS
. Кажется, что это проблема с поддержкой CORS в веб-API.
Но метод Web API работает как ожидается, если вызывается из простого приложения .NET консоли:
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.Headers[HttpRequestHeader.Authorization] = "Basic " + token + ":" + password;
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
Это также работает, если вызывается из Скрипач.
Если метод Web API не поддерживает CORS, почему эти другие вызовы работают? Я что-то пропустил в своем вызове jQuery?
P.S. У меня нет доступа к базе кода Web API.
Заранее благодарим за помощь!