Это могут быть две вещи, обе относящиеся к модели безопасности браузера.
Опция 1 - это перенаправление на другой домен.Клиенты могут решить следовать перенаправлению или отказаться.В частности, перенаправление HTTP 307. (которое позволяет пересылать данные POST) не всегда принимается клиентами.
Опция 2 связана с перенаправлением ресурса с помощью HTTP-метода POST url другомуресурс с методом GET.
Если HTTP-метод текущего представления и перенаправления различаются (т. е. HTTP POST для / login url и HTTP GET для facebook / myapp), по крайней мере, IE8 откажетсяперенаправления.Я не уверен, что это было изменено в IE9.
Есть несколько вещей, которые вы можете попробовать.
- Вы можете попробовать другой код ответа HTTP.Предполагая, что нет необходимости пересылать параметры HTTP из исходного запроса в перенаправленный запрос, код ответа 303 будет лучше, чем 307.
- Если ваша ситуация предполагает перенаправление ресурса HTTP POST на внешнийРесурс HTTP GET на Facebook, еще одна попытка - добавить дополнительную переадресацию посередине: ресурс POST на yoursite.com -> перенаправление на ресурс GET на yoursite.com -> внешнее перенаправление на домен facebook.Опция «дополнительное перенаправление» может исправить один браузер, но сломать другой (браузеры имеют ограничения на перенаправления, которые могут различаться в зависимости от типа браузера и версии).Если вы попадете в эту ситуацию, вам может понадобиться обнаружить пользовательский агент и переключиться между IE и другими браузерами.
Несколько хороших ссылок:
Django / IE8Странность интерфейса администратора
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes