这是我尝试使用的json文件: http://www.oref.org.il/WarningMessages/alerts.json 我试图检索大部分时间都是空的“数据”数组。
我遇到了跨域的一些问题,我收到了“Access-Control-Allow-Origin”错误消息。
$.ajax({
url : "http://www.oref.org.il/WarningMessages/alerts.json",
type : 'GET',
crossDomain: true,
data : "json",
dataType : "json",
success : function(res) {
console.log('res',res);
}
});
我也尝试了一些jsonp方法来获取数据,但我没有成功。 有人可以帮我修改我的代码吗?
答案 0 :(得分:-1)
JSONP实际上是克服XMLHttpRequest
相同域策略的简单技巧。
所以尝试用“jsonp”替换“json”代替dataType
attribut:
$.ajax({
url : "http://www.oref.org.il/WarningMessages/alerts.json",
type : 'GET',
crossDomain: true,
data : "json",
dataType : "jsonp",
success : function(res) {
console.log('res',res);
}
});
编辑:
解决方案是服务器(php,java),它检索json文件并重新公开它。 然后使用jquery脚本从服务器中检索json。
示例php代码:
header("Content-Type:application/json");
echo file_get_contents("http://www.oref.org.il/WarningMessages/alerts.json");
答案 1 :(得分:-1)
此代码克服了您所面临的错误。 dataType应为" jsonp"让Jquery将其视为Ajax请求。 (使用最新版本的Jquery 2.1.1测试)
$.ajax({
url : "http://www.oref.org.il/WarningMessages/alerts.json",
type : 'GET',
crossDomain: true,
data : "json",
dataType : "jsonp",
success : function(res) {
console.log('res',res);
}
});