通过XMLHttpRequest进行基本身份验证问题

时间:2015-07-30 17:04:22

标签: javascript xmlhttprequest http-basic-authentication

我正在尝试拨打OutPan服务以获取条形码详情。

var url = "https://api.outpan.com/v1/products/0796435419035";
var xmlhttp = new XMLHttpRequest();
var encodedString = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:";
xmlhttp.open("GET", url, true);

xmlhttp.setRequestHeader("Authorization", "Basic " + encodedString);
xmlhttp.send();
var temp = xmlhttp.responseXML;

encodedString是API密钥Base64转换。在Javascript中将字符串转换为Base64并不简单。我已使用在线工具转换它并将该值分配给encodedString。但是我明白了:

  

无法加载资源:服务器响应状态为401(未授权)

     

Reader.html:1 XMLHttpRequest无法加载https://api.outpan.com/v1/products/0796435419035。无效的HTTP状态代码401

1 个答案:

答案 0 :(得分:1)

您忘记了冒号和(空)密码。

基本认证的格式为"Basic " + base64(username + ":" + password),因此您需要对api密钥进行编码,然后对冒号进行编码。