我看一下
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 }); });
谢谢.
解决方法
实际上,您应该能够使用options对象中的user和password属性传递用户和密码.
在以前的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; };