jQuery文件上传:设置跨浏览器上传时HTTP选项的标头



使用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请求标头

相关内容

  • 没有找到相关文章

最新更新