jQuery.ajax't发送带有OPTIONS请求的Authorization标头
jQuery.ajax doesn't send Authorization header with OPTIONS request
在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
});
我还尝试将username
和password
添加到ajax选项中,但没有成功。
第三方服务器的配置似乎不正确,没有考虑OPTIONS请求。
W3规定飞行前OPTIONS请求必须:
排除用户凭据。
定义了用户凭据:
在本规范中,术语用户凭据是指cookie、HTTP身份验证和客户端SSL证书
请参阅https://www.w3.org/TR/cors/#cross-原始请求-带反射灯-0
如果服务器在您的控制范围内,那么您只需将OPTIONS请求处理程序放在身份验证检查之前。
如果服务器不在你的控制范围内,这似乎是这里的情况,那么你会抱怨服务器管理员解释他们做错了,并希望他们改变它。
相关文章:
- ajax请求的顺序总是不同的
- Meteor如何接收HTTP请求
- 有没有一种方法可以防止img get请求使用css或js发生
- 从ajax请求中获取javascript对象
- JSONP请求返回结果,但也触发error_callback
- 如何阻止Backbone.js发送OPTIONS请求
- jQuery.ajax't发送带有OPTIONS请求的Authorization标头
- 对SOAP服务的Preflight OPTIONS请求不起作用
- Ext.Ajax.request 发送 OPTIONS 请求跨域,当 jQuery.ajax 发送 GET 时
- AngularJS对跨源资源执行OPTIONS HTTP请求=>错误401
- rails应用程序中的AJAX请求错误:xhr.send((options.hasContent&&op
- 在angular js中添加标头时,HTTP GET请求更改为OPTIONS
- Tomcat 8没有响应来自CriOS的OPTIONS请求
- if - modified - since标头使CORS OPTIONS请求失败
- 为什么发送多个OPTIONS请求,即使Access-Control-Allow-Origin设置为*
- 为什么经过验证的CORS请求的preflight OPTIONS请求在Chrome中工作,而在Firefox中不起作用?
- 在本地使用Google Chrome浏览器禁用OPTIONS请求
- 同时使用http请求、承诺、ng-options和工厂或服务
- CORS:为什么我的浏览器不;t发送OPTIONS飞行前请求
- setRequestHeader Content-Type导致POST请求变成OPTIONS