Оказывается, получение IIS для поддержки POST
не очень помогает.
Я использую XMLHttpRequest
для выполнения POST
с.Почти в каждой реализации XMLHttpRequest
(, например, Chrome, Internet Explorer, MSXML) есть ошибка, при которой после выполнения перенаправления выполняется GET
вместо POST
.
Спецификация W3C XMLHttpReqest говорит, что перенаправления должны выполняться, а запросы перевыпускаются:
Если ответ является перенаправлением HTTP:
Если редирект делаетне нарушать безопасность (например, того же источника ), меры предосторожности для бесконечного цикла и поддерживаемую схему, прозрачно следовать перенаправлению при соблюдении правил событий запроса того же источника .
Примечание. HTTP устанавливает требования к пользовательскому агенту в отношении сохранения метода запроса и тела объекта запроса во время перенаправлений, а также требует, чтобы конечные пользователи были уведомлены об определенных видах автоматических перенаправлений.
И вот сайт , где вы можете проверить ошибку вреализация вашего браузера XmlHttpRequest
.
В конце я исправлю ошибку IIS и ошибку XMLHttpRequest
, выполнив мою страницу по умолчаниювсе, что 302 redirect
будет, но вернет 200 OK
вместо:
HTTP/1.1
200 OK
Connection: close
Date: Sun, 27 Jun 2010 13:28:14 GMT
Server: Microsoft-IIS/6.0
Location: http://errorreporting.example.com/submit/SubmitError.ashx
Content-Length: 92
Content-Type: text/html
Cache-control: private
<HTML><BODY>This content has moved <A href="submit/SubmitError.ashx">here.</A></BODY></HTML>
Я заставляюв любом случае, клиент должен сделать два попадания - с тем же успехом он может работать правильно.