我查看Dojo v.1.9 request/xhr的文档 我找不到包含基本身份验证的示例。
如何以及在何处在Dojo XHR选项中包含用户名和密码?
require(["dojo/request/xhr"], function(xhr){
xhr("example.json", {
// Include User and Password options here ?
user: "userLogin"
password: "userPassword"
handleAs: "json"
}).then(function(data){
// Do something with the handled data
}, function(err){
// Handle the error condition
}, function(evt){
// Handle a progress event from the request if the
// browser supports XHR2
});
});
感谢。
答案 0 :(得分:6)
实际上,您应该能够使用user
对象中的password
和options
属性传递用户名和密码。
在以前的Dojo版本中,这是有记录的,但现在似乎并非如此。但是,我刚测试了它,它似乎在URL中添加了用户名和密码,如:
http://user:password@myUrl/example.json
通常,浏览器应该能够翻译此URL,以便设置请求标头。
您也可以手动设置这些标题,例如使用:
xhr("example.json", {
headers: {
"Authorization": "Basic " + base64.encode(toByteArray(user + ":" + pass))
}
}).then(function(data) {
// Do something
});
但是,这需要dojox/encoding/base64
模块和以下功能:
var toByteArray = function(str) {
var bytes = [];
for (var i = 0; i < str.length; ++i) {
bytes.push(str.charCodeAt(i));
}
return bytes;
};