我正试图从我的服务器获取一个json文件。到现在为止,我总是需要一个json文件,它是由ajax和服务器中的php文件创建的json文件。
我没有这个结构的json文件(X.json):
{
"zona": [
{
"zona1": [
{
"lon": "a",
"lat": "b"
},
{
"lon": "aa",
"lat": "bb"
},
{
"lon": "aaa",
"lat": "bbb"
},
{
"lon": "aaaa",
"lat": "bbbb"
}
]
},
{
"zona2": [
{
"lon": "c",
"lat": "d"
},
{
"lon": "cc",
"lat": "dd"
},
{
"lon": "ccc",
"lat": "ddd"
},
{
"lon": "cccc",
"lat": "dddd"
},
{
"lon": "ccccc",
"lat": "ddddd"
}
]
}
]
}
当我以同样的方式获取文件时,我没有得到任何东西。我想也许有可能在我加载网页时添加文件,就像一个javascript文件。或者也许和jsonp一起但是我很讨厌,而且我的答案也很糟糕。
当json尝试时,我使用了:
$.ajax({
url: 'localhost/open/listaPuntosZona.json',
type: 'GET',
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
jsonp: "callback",
jsonpCallback: "jsonpCallbackfunction",
error: function () {
alert("Error in Jsonp");
}
});
function jsonpCallbackfunction(responseData) {
alert(responseData);
}
我还使用:callback(jsonfile code)
包装了json文件此外,另外两次尝试:
$.ajax({
url: 'localhost/open/listaPuntosZona.json',
type: 'get',
error: function(data){ },
complete: function(data){
data=jQuery.parseJSON(data); //do something with data
alert(data.zona.zona1.length);
}
});
$.getJSON('localhost/open/listaPuntosZona.json',function(jsonData){
alert("hola");
alert(jsonData);
});
我正在使用lampp来测试网页。
我必须改变什么吗?我过去使用过jsonp,但现在不知道我做错了什么。
答案 0 :(得分:1)
首先,尝试使用$.getJSON()
而不是普通的$ .ajax()。它将立即解决许多问题。
http://api.jquery.com/jQuery.getJSON/
其次,确保你的json文件格式完美,没有任何松散的字符和奇怪的空格。
还尝试将错误处理程序链接到ajax调用。可在上面的getJSON文档中找到。
var jqxhr = $.getJSON("example.json").error(function() { alert("error"); });
// this is according to documentation, i cannot currently test this to work, sorry about that.
答案 1 :(得分:0)
我知道这是旧的,但如果其他人像我一样遇到这个问题,我可以通过以下方式修复它...
将以下行添加到 .htaccess 文件...
Header set Access-Control-Allow-Origin "*"