我正在研究需要从不同服务器下载JSON文件的项目,因为我正在研究jQuery,我希望这将是一个易于实现的任务。
这是我的代码:
loadJSON: function () {
var ajaxhttp = new XMLHttpRequest();
var url = "https://cors-anywhere.herokuapp.com/http://dl.sniper.pl/q/test.json"
ajaxhttp.open("GET", url, true);
ajaxhttp.setRequestHeader("content-type", "application/json");
ajaxhttp.onreadystatechange = function() {
if (ajaxhttp.readyState == 4 && ajaxhttp.status == 200) {
var data = JSON.parse(ajaxhttp.responseText);
console.log(data)
}
}
ajaxhttp.send(null);
},
这个例子很好但是它使用了代理cors-anywhere.herouapp.com,它是在不同的线程中向我建议的。 我想要实现的是有机会直接从我的服务器获取JSON文件。我不想使用可能不可靠的第三方提供商。
我尝试将.htaccess文件更改为:
# Always set these headers.
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
# Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
我把它.htaccess放在目录中我存储JSON文件然而没有任何运气 - 我的chrome总是说我违反了政策或者像这样:
XMLHttpRequest无法加载http://dl.sniper.pl/q/test.json。响应 预检无效(重定向)
我被告知这是因为我的服务器没有提供正确的标头。我不确定如何检查它是否属实或找到任何补救措施。考虑我只是服务器的最终用户,我无权更改apache设置(或检查它是否是apache服务器)。 你能帮我解决问题并用JSON获取跨域数据吗?谢谢。