Заголовки запроса авторизации Ajax снова и снова терпят неудачу

Я работаю над потребителем для самодельного API и испытываю серьезные трудности с настройкой Authorization заголовок.Я использую JQuery для запросов Ajax, но 'beforeSend'вообще не работает (используя fiddlerдля проверки запросов)

Это мой код перед отправкой:

    $.ajax({
     type: "GET",
     url: url+"/Projects",
     contentType: "application/json; charset=utf-8",
     beforeSend: function (req) {
        req.setRequestHeader("Authorization", AuthBuilder(username, password));
     },
     success: function (result) {
        alert("success");
     },
     error: function (xhr, ajaxOptions, thrownError) {
        alert("fail");
     }
 });

Хорошо, если это не удается, что вы делаете? Вернитесь к старому способу отправки ajax-запросов... ну, это тоже не работает...

Это мой обычный код:

function GET(address, callback, error) {
Request = getXMLHttpObject();
Request.open("GET", url + address, true);

var base64 = Base64.encode(username + ":" + password);
alert(base64);
Request.setRequestHeader("Authorization", "Basic " + base64);

Request.send();
Request.onreadystatechange = function () {
    //alert(Request.readyState+" code "+Request.status);
    if (Request.readyState == 4 && Request.status == 200) {
        callback(jQuery.parseJSON(Request.responseText));
    } else if (Request.readyState == 4 && Request.status >= 400) {
        error(Request.status, Request.statusText);
    }
} 
}

Не обращайте внимания на тот факт, что я не запрашиваю конкретно json потому что сервис возвращает json по default.

В доп:

  • происхождение не имеет значения, сервис разрешает все происхождения (проверено и подтверждено)
  • Авторизация работает при задании по заголовкам (проверено на других клиентах)
  • Заголовки авторизации просто не отправляются
  • AuthBuilder(имя пользователя, пароль)) дает правильный формат содержимого заголовка Basic Auth
  • getXMLHttpObject() — это просто код для копирования и вставки, который работал до

есть мысли?

6
задан Arninja 22 March 2012 в 10:12
поделиться