Заголовок HTTP-запроса не устанавливается с помощью параметра headers в jQuery.ajax () в браузерах Chrome / Safari / Webkit - PullRequest
3 голосов
/ 29 июля 2011

Я использую jQuery 1.6.2 и наблюдаю странное поведение, используя параметр headers метода jquery.ajax().Я использую этот параметр для выполнения базовой аутентификации HTTP.Запрос отлично работает в Firefox, и данные успешно извлекаются с сервера.Однако в Chrome и Safari я получаю приглашение ввести имя пользователя и пароль.Глядя на запрос HTTP в Chrome, я не вижу заголовок запроса Authorization.Тем не менее, на Firefox, я делаю.

Есть идеи, что здесь происходит и как решить эту проблему?

Обновление

Вот код, который запрашивается.Я пытался использовать как до, так и после 1.5 способа установки заголовков HTTP-запросов безрезультатно.

$(function(){
  $.ajax({
    url: "<some url>", 
    dataType: "jsonp",

    // jquery 1.5+ Approach

    // headers: {
    //   "Authorization":"Basic username:password",
    //   "Content-Type":"application/x-www-form-urlencoded"
    // },


    // jQuery 1.4 Approach

    // beforeSend: function(jqXHR, settings) {
    //  jqXHR.setRequestHeader("Authorization", "Basic username:password");
    //  jqXHR.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    // },

    success: function(data){
       // do stuff
     }
  });
});

Ответы [ 3 ]

0 голосов
/ 19 октября 2011

Я нашел ответ, который работал для меня. Взято из

XMLHttpRequest в расширении Chrome с HTTP-авторизацией продолжает отправлять заголовок авторизации на обычных страницах

=>

Добавьте дополнительный заголовок ": x" к заголовку авторизации следующим образом:

xmlReq.setRequestHeader («Авторизация», «Основные» + base64_encode (access_token + «: x»));

Работает в FF и Chrome. Не работает в IE9 - я все еще расследую это.

НТН Томас

0 голосов
/ 29 января 2019

Я был укушен этим, так же как и почесывал голову и отлаживал jQuery, моя специфическая проблема, казалось, заключалась в том, что я делал http-запрос к сайту, который применял HTTPS, поэтому, когда браузер получил 301-ответ для безопасной версии сайта кажется, что подсистема XHR следует перенаправлению, но отбрасывает заголовки в процессе: (

0 голосов
/ 29 июля 2011

Какое значение вы предоставляете для заголовка Content-Type? Если вы не указали это, попробуйте следующий заголовок.

Content-Type:application/x-www-form-urlencoded
...