У меня есть ASP.NET Core API, который добавляет два заголовка к своему ответу callback_uri
и redirect_uri
.
Странная вещь (для меня) состоит в том, что в моем вызове AJAX к службе,Заголовки являются частью данных JSON в виде массива заголовков, а не самого объекта request
.Я не могу использовать jqxhr.getResponseHeader(...)
и поэтому должен вручную запрашивать массив заголовков в данных ответа.
Поскольку StatusCode
также является частью данных, это означает, что мой обратный вызов AJAX всегда вызывается, даже когда я 'm тестирование 400 неправильных ответов на запросы, что делает тестирование менее простым.
Действие контроллера Web API:
[HttpGet, Route("Authenticate")]
public HttpResponseMessage Authenticate(string applicationId)
{
HttpResponseMessage response;
if(!_security.IsApplicationIdValid(applicationId))
{
response = new HttpResponseMessage(System.Net.HttpStatusCode.BadRequest);
response.ReasonPhrase = ErrorMessages.INVALID_APPLICATION_ID;
return response;
}
IAuthenticationProvider authProvider = _security.GetAuthenticationProvider();
response = new HttpResponseMessage(System.Net.HttpStatusCode.Redirect);
response.Headers.Add(HeaderKeyNames.CALLBACK_URI_KEY_NAME, authProvider.GetCallbackUrl());
response.Headers.Add(HeaderKeyNames.AUTHENTICATION_SERVICE_REDIRECT_URI_KEY_NAME, authProvider.GetUrl());
return response;
}
Код AJAX:
var settings = {
data: { "applicationId": applicationId },
success: successCallback, // at the moment just writes to console
error: errorCallback, // at the moment just writes to console
method: "GET"
};
$.ajax(url, settings);
Я что-то не так делаю на стороне сервера?