Я нахожу ваш вопрос интересным, но проблема в целом кажется мне больше недоразумением.По крайней мере, я попытаюсь объяснить мое понимание проблемы.
Бесшумное (прозрачное) перенаправление является частью спецификации XMLHttpRequest
(см. здесь особенно слова "...прозрачно следуйте за редиректом ... »).В стандарте упоминается только то, что пользовательский агент (веб-браузер) может предотвращать или уведомлять об определенных видах автоматического перенаправления, но он не является частью XMLHttpRequest
.Это часть конфигурации клиента HTTP (конфигурации ОС) или конфигурации веб-браузера.Поэтому jQuery.ajax
не может иметь никакой опции, где вы можете предотвратить перенаправление.
Вы можете видеть, что перенаправление HTTP является частью протокола HTTP, а не частью XMLHttpRequest
.Так что это на другом уровне абстракции или сетевого стека.Например, данные из XMLHttpRequest
могут быть получены из HTTP-прокси или из локального кэша браузера, и это часть протокола HTTP.В основном сервер , который предоставляет данные, а не клиент может влиять на кеширование.
Вы можете сравнить требование из вашего вопроса с требованием предотвратить изменение IP-адреса веб-сервера илиизменение IP-маршрута во время связи.Все вещи могут быть интересны в некоторых сценариях, но есть части другого уровня стека связи и не могут управляться jQuery.ajax
или XMLHttpRequest
.
The *Стандарт 1024 * говорит о том, что в конфигурации клиента могут быть параметры, предотвращающие перенаправление.В случае «мира Microsoft», который я лучше знаю, вы можете посмотреть на функцию WinHttpSetOption , которую можно использовать для установки опции WINHTTP_OPTION_DISABLE_FEATURE
со значением WINHTTP_DISABLE_REDIRECTS
.Другим способом является использование опции WINHTTP_OPTION_REDIRECT_POLICY
со значением WINHTTP_OPTION_REDIRECT_POLICY_NEVER
.Еще одна функция, которую можно использовать в Windows, - это функция WinHttpSetStatusCallback , которая может устанавливать функцию обратного вызова, получая некоторые уведомления, такие как WINHTTP_CALLBACK_FLAG_REDIRECT
.
Так что возможно реализовать ваши требования в целом, норешение, вероятно, не будет зависеть от операционной системы или веб-браузера и не будет на уровне jQuery.ajax
или XMLHttpRequest
.