使用XMLHTTPRequest进行基本身份验证

时间:2009-10-30 20:38:13

标签: javascript xmlhttprequest basic-authentication

我正在尝试使用XMLHTTPRequest在twitter上获取更新。

var XMLReq = new XMLHttpRequest();
XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password");
XMLReq.send(null);

然而,使用我的嗅探器,我看不到任何授权标头被传递。因此,我从Twitter获得了401错误回复。

正确输入了帐号和密码。

有人试图这样吗?谁能给我一些指示?谢谢。

3 个答案:

答案 0 :(得分:56)

您只需要在base64编码的字符串中添加Authorization标头,用户名和密码,如下所示。

XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password"));

答案 1 :(得分:9)

在跨源请求中,如果要发送用户凭据,则必须显式设置withCredentials标志。

请参阅http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute(其中user credentials包含HTTP身份验证)

答案 2 :(得分:3)

由于 Origin策略,您无法从您的域向另一个域创建XMLHttpRequest。例如。除非您的脚本是从http://twitter.com/...加载的,否则您无法使用twitter.com个网址。如果您的脚本是从http://localhost/加载的,那么AJAX请求也需要转到localhost。