我正在开发一个AngularJS应用程序,我已经实现了一个简单的登录API调用.除了Safari之外,API在所有浏览器中都给出了响应.
$http.post(config.login,{ email: username,password: password }) .then(function (response) { callback(response); },function (response) { callback(response); });
我在Safari中得到以下响应.
我正在使用Angular v1.4.8和Safari版本9.0(11601.1.56)
关于什么是错误的任何线索?
解决方法
这让我发疯了.
首先,我下载angular.js文件,然后搜索“xhr.setRequestHead”.所有问题都在这里.
我试图把一些日志看看发生了什么.
首先,我下载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自动将标题’Authorization’:’Basic’放入.但是’Basic’字符串的长度是6而不是5.
所以使用key = key.trim()和value = value.trim()解决了问题.
如果有这个帮助,请告诉我.