2

使用 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
      },
  });
4

1 回答 1

0

为此,远程端点必须显式设置 CORS 响应标头以允许在 OPTIONS 请求中使用授权:

Access-Control-Allow-Headers: Authorization

如果您尝试上传到的远程服务器未设置此标头,您的跨域 AJAX 调用将无法发送Authorization请求标头。

于 2014-07-26T21:40:53.327 回答