26

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

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

但是,使用我的嗅探器,我看不到任何授权标头正在通过。因此,我从 Twitter 收到 401 错误响应。

帐号和密码输入正确。

有人尝试这个吗?谁能给我一些指示?谢谢你。

4

3 回答 3

73

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

XMLReq.setRequestHeader("Authorization", "Basic " + btoa("username:password"));
于 2015-04-08T22:30:45.750 回答
10

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

请参阅http://www.w3.org/TR/XMLHttpRequest/#the-withcredentials-attribute(其中用户凭据包括 HTTP 身份验证)

于 2013-11-27T09:11:37.740 回答
3

由于Origin policy,您不能从您的域向另一个域发出 XMLHttpRequest。例如,您不能使用http://twitter.com/...URL,除非您的脚本是从twitter.com. 如果您的脚本是从 加载的http://localhost/,AJAX 请求也需要转到 localhost。

于 2009-11-22T17:48:24.633 回答