Javascript 使用XMLHTTPRequest进行基本身份验证
我正在尝试使用XMLHTTPRequest在twitter上获取更新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错误响应 正确输入帐户
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头缺失的不可靠浏览器)。