Запрос JQuery Ajax: Изменить User-Agent - PullRequest
14 голосов
/ 24 апреля 2011

Я использую JQuery для выдачи AJAX-запроса в мой собственный веб-сервис.Мне нужно установить или изменить HTTP-заголовок User-Agent для HTTP-AJAX-запроса. Как это сделать проще всего?

Я попробовал подсказку, предоставленную некоторыми пользователями, чтобы использовать метод setRequestHeader для установки User-Agent, но это не работает.На самом деле он работает для других вновь созданных заголовков (например, X-Test-Header), но не работает для User-Agent.

Спасибо!

Ответы [ 3 ]

29 голосов
/ 03 мая 2011

Это просто невозможно, вам не разрешено менять пользовательский агент для XMLHttpRequests. Я не уверен, что это действительно для Internet-Explorer, но w3c указывает здесь :

Метод setRequestHeader ()

[...]

Когда вызывается метод setRequestHeader (header, value), пользовательский агент должен выполнить следующие шаги: [...]

Завершите эти шаги, если заголовок является регистронезависимым совпадением для одного из следующих заголовков:

[...]

  • User-Agent
10 голосов
/ 24 апреля 2011

Если вы используете jQuery, установите заголовок запроса в ajaxSetup.

$.ajaxSetup({
  beforeSend: function(request) {
    request.setRequestHeader("User-Agent","InsertUserAgentStringHere");
  }
});
5 голосов
/ 03 декабря 2012

Что ж, вы всегда можете использовать jQuery для публикации на странице на стороне сервера, которая, в свою очередь, может изменить заголовок User-Agent, а также сделать запрос к странице, к которой непосредственно обращался бы jQuery.

...