【发布时间】:2015-04-24 09:28:29
【问题描述】:
在POST 请求(或可能的其他类型)之前发送OPTIONS 请求时,jQuery 似乎不会发送Authorization 标头。我试图访问的服务器正在为 OPTIONS 请求返回 401 状态 - 即使在这个初始请求中,我如何强制 jQuery 包含 Authorization 标头?
$.ajax({
type: "POST",
url: url,
data: postData,
beforeSend: function ajaxBeforeSend(jqXHR) {
jqXHR.withCredentials = true;
jqXHR.setRequestHeader("Authorization", "Basic " + btoa(encodeURIComponent(escape($username.val())) + ":" + encodeURIComponent(escape($password.val()))));
},
success: runReportUrlCallback,
error: runReportErrorCallback
});
我还尝试在 ajax 选项中添加 username 和 password,但无济于事。
【问题讨论】:
-
似乎使服务器不需要对 OPTIONS 请求进行身份验证是修复它的唯一方法。
-
我不“拥有”服务器。这是第 3 方网络服务。
标签: javascript jquery ajax cors