2015-12-22 4 views
4

Я разрабатываю приложение AngularJS, и я реализовал простой API-интерфейс входа в систему. API дает мне ответ во всех браузерах, кроме Safari.

Мой Логин API вызов выглядит следующим образом

$http.post(config.login, { 
     email: username, 
     password: password 
    }) 
    .then(function (response) { 
      callback(response); 
     }, 
     function (response) { 
      callback(response); 
     }); 

я получаю следующий ответ в Safari.

enter image description here

Я использую Угловое v1.4.8 Сафари Версия 9,0 (11601.1.56)

Любой ключ на что идет не так?

+0

[SYNTAX_ERR: DOM Exception 12 - Hmmm] (http://stackoverflow.com/q/7315162/2333214) у вас, вероятно, нет html5 doctype ..? –

ответ

3

Это делает меня сумасшедшим. Прежде всего, загружаю файл angular.js, а затем ищите «xhr.setRequestHead». Все проблемы здесь. Я попытался поместить некоторые журналы, чтобы увидеть, что происходит.

forEach(headers, function(value, key) { 
    key = key.trim();// trim the key 
    value = value.trim();// trim the value 
    console.log("******************** key: " + key); 
    console.log("******************** value: " + value); 
    console.log('value: Basic vs ' + value+ ' equal: '+ (value==="Basic")); 
    console.log('value.length: ' + value.length); 
    if (isDefined(value)) { 
     xhr.setRequestHeader(key, value); 
    } 
}); 

Я обнаружил, что angularjs автоматически поместить заголовок «Авторизация»:. «Basic» в Но длина строки «Basic» является 6 не 5. Таким образом, используя ключ = key.trim() и = значение .trim() решает проблему.

Дайте мне знать, если это поможет.

+0

Это отличная помощь для меня. Спасибо. –

Смежные вопросы