【问题标题】:$http post not working in Safari$http 帖子在 Safari 中不起作用
【发布时间】:2015-12-22 06:32:40
【问题描述】:

我正在开发一个 AngularJS 应用程序,并且我已经实现了一个简单的登录 API 调用。 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)

有什么线索吗?

【问题讨论】:

标签: angularjs safari


【解决方案1】:

这让我抓狂。 首先,我下载 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() 可以解决问题。

如果有帮助,请告诉我。

【讨论】:

  • 这对我帮助很大。谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-01-25
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多