XMLHttpRequest无法进行基本身份验证

时间:2014-06-14 04:01:31

标签: ajax xmlhttprequest pebble-watch pebble-sdk

知道为什么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中正确验证。

1 个答案:

答案 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实现中存在一个错误。