dojo выдает запрос GET всякий раз, когда в любом методе HTTP есть ответ 301 о постоянном перенаправлении - PullRequest
3 голосов
/ 24 мая 2011

Мое веб-приложение работает следующим образом:

  • / abc / xyz: постоянный редирект ответа 301 Расположение: / abc / xyz /
  • / abc / xyz /: на основе соответствующего ответапо HTTP запрашивается метод

Теперь, когда я выдаю запрос следующим образом:

dojo.xhr('PUT', {url : "/abc/xyz"})

Следующие последовательности операций происходят автоматически:

  • A PUTзапрос отправлен
  • Получено постоянное перенаправление 301
  • Запрос GET отправлен на новый URL / abc / xyz /

Я не понимаю, почемуэто происходит.Я не хочу, чтобы dojo.xhr был таким умным.Я хочу, чтобы он просто остановился на 301 ответе на постоянное перенаправление и позволил мне позаботиться о том, как обрабатывать постоянное перенаправление.Я бы предпочел обновить URL и отправить новый запрос PUT в этом случае.Ситуация такая же для всех других методов HTTP, таких как OPTIONS и т. Д. Я использовал приведенный выше PUT в качестве примера.

Есть ли возможность настроить dojo.xhr так, чтобы он вел себя так?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2011

Это известные проблемы во всех браузерах, кроме IE (с исправлением в конвейере для Firefox).

В то же время, если вам действительно нужен браузер для правильного следования перенаправлению PUT, вам необходимо использовать код состояния 307.

См. Также http://trac.tools.ietf.org/wg/httpbis/trac/ticket/160 и http://trac.tools.ietf.org/wg/httpbis/trac/ticket/312

0 голосов
/ 12 сентября 2011

Если вам действительно не нужно следовать 301, вы можете создать шлюз на стороне сервера, который будет возвращать уведомление о том, что 301 был получен вместо того, чтобы следовать за ним.

Чтобы сделать это с помощью PHP и curl.см http://php.net/manual/en/ref.curl.php В комментариях есть функция get_url

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...