jquery - beforeSend 不会将授权 header 添加到我的 jquery ajax 调用中(基本授权)

标签 jquery ajax cors basic-authentication

我一直在尝试对休息服务进行 $ajax() 调用。我需要使用基本身份验证来进行此调用,因此我将 beforeSend 处理程序添加到我的 ajax 调用中。当我在 Fiddler 中跟踪这一点时,我没有看到它将授权 header 附加到我的请求中。

<body>
<div id="Button1" style="border: 2px solid blue; font-family: Cambria;">
    Get CMS Content
</div>
<br />
<div id="error" style="color: Red; font-family: Cambria; font-size: large; display: none;">
</div>
<span style="font-family: Cambria; color: #009933; font-weight: bold">Result:</span>
<div id="result">
</div>
<script src="scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#Button1').click(function () {
            $('#error').fadeOut('slow');
            //var requestParams = { 'format': 'json', 'username': 'administrator', 'password': '' };
            var requestParams = { 'format': 'json' };
            $.ajax({
                beforeSend: function (xhr) {
                    xhr.setRequestHeader("Authorization", "Basic YWRtaW5pc3RyYXRvcjo=");
                },
                url: "http://localhost/KenticoCMS7/rest/cms.country",
                data: requestParams,
                dataType: "text",
                contentType: "application/json;",
                success: function (result) {
                    $('#error').fadeOut('slow');
                    $('#result').text(result);
                },
                error: function (xhr, status, errorThrown) {
                    $('#error').text(JSON.stringify(xhr));
                    $('#error').fadeIn('slow');
                }
            });
        });
    });
</script>

围绕这方面的建议会有很大帮助。另外,有人可以评论一下,为什么 fiddler 将此请求跟踪为 OPTIONS 类型,而它应该是 GET 类型?

最佳答案

OPTIONS 表示这是一个 CORS 请求,需要 PREFLIGHT 请求来确定服务器允许该请求方法并且允许凭据。通过返回 HTTP/405,服务器表明它不支持 CORS,这会导致后续 GET 请求(包括其凭据)永远不会发送。

您是否跨域发送请求?

关于jquery - beforeSend 不会将授权 header 添加到我的 jquery ajax 调用中(基本授权),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14859349/

相关文章:

ajax - 如何通过 Azure 网站上的 Node.js 应用程序将大文件上传流传输到 Azure Blob 存储?

javascript - 为什么我的 JavaScript 代码收到“"No ' Access-Control-Allow-Origin' header is present on the requested resources”错误,而 Postman 却没有?

javascript - 将 Fetch 与授权 header 和 CORS 结合使用

javascript - 在文本区域的 keyup 事件上将文本添加到无序列表

javascript - 将值附加到 javascript 数组

php - codeigniter db->delete() 总是返回 true 吗?

javascript - CORS 预检返回 Access-Control-Allow-Origin 但响应挂起

javascript - Select2 示例不起作用

javascript - 有没有一种方法可以wrappAll()但忽略一个元素?

javascript - 在同一页面显示搜索结果,无需刷新页面