即使我的服务器具有“Access-Control-Allow-Origin:*”,也会发出AllowAccess问题

时间:2014-03-24 14:48:14

标签: python xmlhttprequest box-api

我试图使用他们的API访问Box.com,但是我执行浏览器的任何XHR都会给出以下Access-Control-Allow-Origin问题:

[Error] XMLHttpRequest cannot load https://www.box.com/api/oauth2/token. Origin http://localhost:8888 is not allowed by Access-Control-Allow-Origin. (localhost, line 0)

我使用了一个我在this gist

找到的简单python服务器

它(在第44行)这行代码self.send_header("Access-Control-Allow-Origin", "*"),然后我认为它可以正常工作......我是对的吗?

这是生成XMLHttpRequest的代码:

this.getAccessToken = function(code) {
  var parameters = 'grant_type=authorization_code' +
    '&code=' + code +
    '&client_id=' + Box.client_id +
    '&client_secret=' + Box.client_secret;

  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'https://www.box.com/api/oauth2/token');
  xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  xhr.setRequestHeader("Content-length", parameters.length);
  xhr.responseType = 'json';

  xhr.onReadyStateChange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
      alert(xhr.response);
    }
  }

  xhr.send(parameters);
}

1 个答案:

答案 0 :(得分:0)

在使用XHR / CORS请求之前,您必须向Box支持提交您的应用程序的功能以及您需要例外的原因。我们不允许*作为CORS"访问控制允许来源"条目。你必须告诉Box你要从中推销你的东西的URL。