Пытаюсь следующее:Переадресация WebAPI не работает?
[System.Web.Http.AcceptVerbs("PUT")]
public HttpResponseMessage MakePost(PostDto post) {
try {
var response = Request.CreateResponse(HttpStatusCode.Redirect); // tried MOVED too
response.Headers.Location = new Uri("google.com");
return response;
} catch (Exception e) {
ErrorSignal.FromCurrentContext().Raise(e);
return Request.CreateResponse(HttpStatusCode.InternalServerError, e);
}
}
который, кажется, частично работает - когда это называется, я вижу запрос POST в хромированном отладчике. Ничто не появляется на вкладке Response, но я вижу запрос GET отправляется в новый URI, но страница никогда не меняется, и мой AJAX вызов выдает ошибку:
var options = {
url: postUrl,
type: type,
dataType: 'json',
xhrFields: {
withCredentials: true
}
};
return $.ajax(options)
.done(function (response) {
// do stuff
})
.fail(function (response) {
alert('error) // this gets hit - shouldn't the browser have redirected at this point?
}).complete(function() {
// stuff
});
};
Если я инспектировать ответ, я вижу статус 200 «ОК» ... Я так смущен.
Что я делаю неправильно?
Ваши ожидания в отношении перенаправления, вероятно, неверны ... Перенаправление - это всего лишь ответ 302, который браузер будет рассматривать как «теперь перейдите на эту страницу, прежде чем возвращаться к этому запросу AJAX». Поскольку перенаправление является результатом междоменного, не может быть прочитано .... –