Установка заголовка запроса в JavaScript
кажется, что я не могу изменить большинство заголовков запросов из JavaScript при выполнении вызова AJAX с помощью XMLHttpRequest. Обратите внимание, что когда request.setRequestHeader должен быть вызван после request.open() в браузерах Gecko (см. http://ajaxpatterns.org/Talk:XMLHttpRequest_Call). Когда я установил Referer, он не устанавливается (я посмотрел на заголовки запросов, отправленные с помощью Firebug и Tamper Data). Когда я установил User-Agent, это полностью испортило вызов AJAX. Установочный принимать и Content-Type работает,. Мы не можем установить Referer и User-Agent в Firefox 3?
var request = new XMLHttpRequest();
var path="http://www.yahoo.com";
request.onreadystatechange=state_change;
request.open("GET", path, true);
request.setRequestHeader("Referer", "http://www.google.com");
//request.setRequestHeader("User-Agent", "Mozilla/5.0");
request.setRequestHeader("Accept","text/plain");
request.setRequestHeader("Content-Type","text/plain");
request.send(null);
function state_change()
{
if (request.readyState==4)
{// 4 = "loaded"
if (request.status==200)
{// 200 = OK
// ...our code here...
alert('ok');
}
else
{
alert("Problem retrieving XML data");
}
}
}
3 ответов:
краткие пункты:
Если в заголовке запроса уже установлено, то новое значение Должен быть связан с существующим значение с помощью запятой U + 002C, за которой следует пространство U + 0020 для разделения.
UAs может дать заголовку User-Agent начальное значение, но должен позволить авторам добавлять к нему значения.
однако - после поиска в рамках XHR в jQuery они не позволяют изменять заголовки User-Agent или Referer. Самое близкое:
// Set header so the called script knows that it's an XMLHttpRequest xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");Я склоняюсь к мнению, что то, что вы хотите сделать, отрицается политикой безопасности в FF - если вы хотите передать некоторые пользовательские
Refererвведите заголовок, который вы всегда можете сделать:xhr.setRequestHeader('X-Alt-Referer', 'http://www.google.com');
@gnarf ответ правильный . хотел бы добавить дополнительную информацию .
ссылка на ошибку Mozilla:https://bugzilla.mozilla.org/show_bug.cgi?id=627942
завершите эти шаги, если заголовок не учитывает регистр для одного из следующих заголовков:
Accept-Charset Accept-Encoding Access-Control-Request-Headers Access-Control-Request-Method Connection Content-Length Cookie Cookie2 Date DNT Expect Host Keep-Alive Origin Referer TE Trailer Transfer-Encoding Upgrade User-Agent ViaИсточник : https://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#dom-xmlhttprequest-setrequestheader
для людей, которые ищут это сейчас.
похоже, что теперь установка этого заголовка разрешена с Firefox 43. См.https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name для текущего списка запрещенных заголовков.
Comments