6
看起来jQuery不会在POST
请求(或其他类型)之前发送OPTIONS
请求时沿Authorization
标头发送消息。我试图达到的服务器返回了OPTIONS
请求的401状态 - 我如何强制jQuery包含Authorization
标题,即使在这个初始请求中?jQuery.ajax不会发送带有OPTIONS请求的授权标头
$.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
});
我也尝试添加username
和password
到AJAX选项,但无济于事。
可能的重复[为什么在Chrome浏览器中运行经过身份验证的CORS请求的预检OPTIONS请求,而不是Firefox?](http://stackoverflow.com/questions/15734031/why-does-the-preflight-options-request -of-an-authenticated-cors-request-in-in) – suish 2015-02-23 05:48:20
看起来像是让服务器不需要对OPTIONS请求进行认证是修复它的唯一方法。 – suish 2015-02-23 05:49:54
我不“拥有”服务器。这是第三方网络服务。 – 2015-02-23 05:52:24