ajax - XMLHttpRequest无法通过基本身份验证

标签 ajax xmlhttprequest pebble-watch pebble-sdk

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

最佳答案

我找到了一种适用于Android的解决方法。

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

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

不适用于我-它总是返回401。因此,我改为尝试通过 header 设置基本身份验证:
    req.open(method, fullurl, true);
    req.setRequestHeader("Authorization", "Basic " + Base64.encode(user + ":" + pass)); 
    req.send(data);

(从此处获取Base64:https://stackoverflow.com/a/246813/961695)–它起作用了!也许XmlHttpRequest在Android上的实现存在错误。

关于ajax - XMLHttpRequest无法通过基本身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24216459/

相关文章:

javascript - 递归地进行多个 AJAX 调用是一个坏主意

javascript - 收藏夹按钮动态更改名称

php - 在 ajax 调用之前创建一个 session

java - 下载 cookie 以发出新的 GET 请求

javascript - Ajax 出错,每页显示 3 个用户

javascript - 如何使用javascript获取基于url的源代码?

javascript - AJAX 请求第一次不起作用,但此后可以起作用

android - 我可以读取另一个应用程序内存吗?

pebble-watch - CloudPebble 与原生 Pebble SDK

pebble-watch - Pebble - 检测摇动手势