我正在尝试使用XMLHTTPRequest在twitter上获取更新。
var XMLReq = new XMLHttpRequest();
XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password");
XMLReq.send(null);
然而,使用我的嗅探器,我看不到任何授权标头被传递。因此,我从Twitter获得了401错误回复。
正确输入了帐号和密码。
有人试图这样吗?谁能给我一些指示?谢谢。
答案 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。