我试图使用他们的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);
}
答案 0 :(得分:0)
在使用XHR / CORS请求之前,您必须向Box支持提交您的应用程序的功能以及您需要例外的原因。我们不允许*作为CORS"访问控制允许来源"条目。你必须告诉Box你要从中推销你的东西的URL。