繁体   English   中英

如何验证 API 获取请求 (html)

[英]How to authenticate an API Get request (html)

我试图弄清楚如何从使用身份验证用户和密码保护的 API 中获取数据。 我最终得到了以下代码,但我收到一条错误消息,阻止我实现目标

HTML 的代码:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />
    <script src="js/jquery-3.5.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var content = $('#content');

            $('#btn').click(function () {
                var username = $('#txtUsername').val();
                var password = $('#txtPassword').val();

                $.ajax({
                    type: 'GET',
                    url: '(the api url)',
                    dataType: 'jsonp',
                    headers: {
                        'Authorization': 'Basic ' + btoa(username + ':' + password)
                    },
                    
                    success: function (data) {
                        
                        $.each(data, function (index, val) {
                            var cdrVal = val.cdr_root[0].cdr;
                            content.append('<li>' + cdrVal + '</li>')
                        });
                    },
                    complete: function (jqXHR) {
                        if (jqXHR.status == '401') {
                            content.empty();
                            content.append('<li style="color:red">'
                                + jqXHR.status + ' : ' + jqXHR.statusText + '</li>')
                        }
                    }
                });
            });

            $('#btnClear').click(function () {
                $("content").empty();
            });
        });
    </script>
</head>
<body>
    Username : <input type="text" id="txtUsername" />
    Password : <input type="password" id="txtPassword" />
    <br /><br />
    <input id="btn" type="button" value="Authenticate" />
    <input id="btnClear" type="button" value="Clear" />
    <ul id="content"></ul>
</body>
</html>

错误信息:

jquery-3.5.1.min.js:2 GET (URL)&callback=jQuery3510613249910788189_1594517328830&_=1594517328834 net::ERR_ABORTED 400 (Bad Request)

这可能是什么原因造成的? 我在网上尝试了多种方法,但没有任何效果。 我怀疑它是 url 本身,因为我仍然可以通过 web 浏览器访问它。

beforeSend可能是 go 的方式。 来自 jQuery 关于$.ajax()的文档:

使用它来设置自定义标题等。

不过,此问题可能与此问题重复: Use basic authentication with jQuery and Ajax

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM