使用jQuery文件上传,我将文件上传到第三方服务器,该服务器需要对所有传入请求进行令牌身份验证。在上传之前,浏览器发送一个OPTIONS请求来检查跨域授权。该请求以401失败,因为它不包含令牌。我如何添加一个"授权:令牌"头到该请求?
在curl中:curl -X OPTIONS https://api.example.com -H 'Authorization: Token <TOKEN>'
我尝试了以下三个选项,都没有成功:
$("#file-upload").fileupload({
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Token " + TOKEN);
},
xhrFields: {
"Authorization": "Token " + TOKEN
},
requestHeaders: {
"Authorization": "Token " + TOKEN
},
});
为此,远程端点必须显式设置CORS响应头以允许在OPTIONS请求中使用授权:
Access-Control-Allow-Headers: Authorization
如果您试图上传的远程服务器没有设置此标头,您的跨域AJAX调用将无法发送Authorization
请求标头