jQuery文件上传:在跨浏览器上传中设置HTTP OPTIONS的标头

时间:2014-07-26 21:32:44

标签: jquery cross-domain jquery-file-upload http-options-method

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

1 个答案:

答案 0 :(得分:0)

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

Access-Control-Allow-Headers: Authorization

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