我试图在javascript中点击API但是获取错误代码401但是在postman上它工作正常。
这是我的javascript代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ABC</title>
<script src="jquery-3.1.0.min.js"></script>
</head>
<body onload="test()"> </body>
<script type="text/javascript">
function test()
{
var credential = '[{"id":"recording", "userId":"administrator", "password":"Expert111"}]'
$.ajax({
url: "http://xx.xx.xx.xx/api/rest/authorize",
type: "POST",
data: { id: "recording", userId: "administrator", password: "Expert111" },
dataType: "jsonp",
success: function (result) {
switch (result) {
case true:
alert("Success");
break;
default:
alert("fail:"+result);
}
},
error: function (xhr, ajaxOptions, thrownError) {
alert("status: " +xhr.status +", ajaxOptions:"+ajaxOptions +",Error:" +thrownError);
},
//data : credential
});
};
</script>
</html>
以下是邮差快照(正常工作)
以下是通过代码请求的结果:
答案 0 :(得分:0)
我不知道你的服务器如何处理授权,但看起来你没有通过它。 401表示 - 未授权:由于凭据无效,访问被拒绝。 在我看来,你必须指定Authorization标头。
var ah = "Basic "+atob("administrator"+":"+"Expert111");
并将其设置为there之类的授权标头。
此外,您可以查看有关basic authentication和encoding to base64
的更多信息如果没有帮助,您可以查看fiddler邮递员发送给服务器的内容,并以同样的方式执行您的请求。