6

知道为什么XMLHttpRequest使用正确的凭据Pebble JS Framework无法在 Android 上进行基本身份验证但在 iOS 中可以使用吗?

完全相同的代码,大致如下:

var req = new XMLHttpRequest();
req.open(method, url, true, user, pass);
req.send(data);
req.onreadystatechange = function() { ... }

从 Android Pebble 应用程序返回 401,但在 iOS 中正确验证。

4

1 回答 1

17

我找到了一个在 Android 上对我有用的解决方法。

不知道为什么,但直接经过身份验证的请求:

    req.open(method, fullurl, true, user, pass);
    req.send(data);

对我不起作用——它总是返回 401。所以我尝试通过标头设置基本身份验证:

    req.open(method, fullurl, true);
    req.setRequestHeader("Authorization", "Basic " + Base64.encode(user + ":" + pass)); 
    req.send(data);

(Base64 取自这里:https ://stackoverflow.com/a/246813/961695 )——它工作了!也许在 android 上的 XmlHttpRequest 实现中有一个错误。

于 2014-06-14T23:14:16.253 回答