Javascript 使用XMLHTTPRequest进行基本身份验证

Javascript 使用XMLHTTPRequest进行基本身份验证,javascript,xmlhttprequest,basic-authentication,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错误响应 正确输入帐户

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

var XMLReq = new XMLHttpRequest();
XMLReq.open("GET", "http://twitter.com/account/verify_credentials.json", false, "TestAct", "password");
XMLReq.send(null);
但是,使用我的嗅探器,我看不到任何正在传递的授权头。因此,我从Twitter上得到了401错误响应

正确输入帐户和密码


有人试过这个吗?谁能给我一些指点吗?谢谢。

由于源站策略的原因,您不能从您的域向另一个域进行XMLHttpRequest。例如,您不能使用
http://twitter.com/...
URL,除非您的脚本是从
twitter.com
加载的。如果您的脚本是从
http://localhost/
,AJAX请求还需要转到本地主机。

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


请参阅(其中包括HTTP身份验证)

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

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

新的链接是并且应该是代码片段中的
客户机
XMLReq
(问题中的变量)?事实上,您是正确的。该方法是XMLHttpRequest.setRequestHeader(header,value)。您可以向另一台服务器发出XHR请求,但另一台服务器必须设置CORS头,以便请求不会被您使用的浏览器拒绝(除非您使用的是忽略CORS头缺失的不可靠浏览器)。