我正在使用d3.request.js从需要HTTP基本身份验证的远程服务器下载数据。我的脚本是:
var query="<request-url>";
d3.request(query)
.post()
.user("login-id")
.password("login-password")
.get(function(error, data) {
//scripts to process result
}
)
&#13;
<script src="https://d3js.org/d3-request.v1.min.js"></script>
<script src="https://d3js.org/d3.v4.min.js"></script>
&#13;
但是在执行上述脚本时,我收到401(未授权)错误。我已经测试过在切换到d3.request之前使用$ .ajax请求方法。它工作正常。因此,它不应该是来自远程服务器的跨域问题。结果是一个json对象,我使用d3.json测试,也失败了。
对此问题的任何建议?
感谢。
答案 0 :(得分:0)
这是跨源请求吗?我的WAG是this is your problem。试试这个:
var query="<request-url>";
d3.request(query)
.post()
.user("login-id")
.password("login-password")
.on("beforesend", function(request) { request.withCredentials = true; })
.get(function(error, data) {
//scripts to process result
}
);
答案 1 :(得分:0)
以下脚本可以解决我的问题。
d3.json(query)
.header("Authorization", "Basic " + btoa(USERNAME + ":" + PASSWORD))
.get(function(error, data) {
if(error) {
console.log(error);
}else{
console.log(data); }
});
感谢您的时间。