知道为什么XMLHttpRequest
var req = new XMLHttpRequest();
req.open(method, url, true, user, pass);
req.send(data);
req.onreadystatechange = function() { ... }
在Pebble JS Framework
中使用正确的凭据无法在Android上进行基本身份验证但在iOS中有效?
完全相同的代码,如下:
{{1}}
从Android Pebble应用程序返回401,但在iOS中正确验证。
答案 0 :(得分: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实现中存在一个错误。