在请求JQuery时获取错误401

时间:2016-09-18 05:04:05

标签: javascript jquery json

我试图在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>

以下是邮差快照(正常工作)

enter image description here

以下是通过代码请求的结果:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我不知道你的服务器如何处理授权,但看起来你没有通过它。 401表示 - 未授权:由于凭据无效,访问被拒绝。 在我看来,你必须指定Authorization标头。

var ah = "Basic "+atob("administrator"+":"+"Expert111");

并将其设置为there之类的授权标头。

此外,您可以查看有关basic authenticationencoding to base64

的更多信息

如果没有帮助,您可以查看fiddler邮递员发送给服务器的内容,并以同样的方式执行您的请求。