控制台中的GeoJson“Not Well Formed”消息,显示为undefined

时间:2016-02-05 17:48:32

标签: javascript json

我在下面的脚本的最后部分,我正在尝试使用Ajax回调函数将JSON文件放入网站。当我检查页面时,我发现JSON文件格式不正确,我似乎无法找到答案。该网页也显示JSON文件是“未定义的”。建议赞赏!

function debugCallback(response){

    var mydata;

    $("#mydiv").append('GeoJSON data: ' + JSON.stringify(mydata));
};


function debugAjax(){

    var mydata;

    $.ajax("data/MegaCities.GeoJSON", {
        dataType: "json",
        success: function(response){
            //mydata = response;
            debugCallback(mydata);
        }
    });

    $("#mydiv").append('<br>GeoJSON data:<br>' + JSON.stringify(mydata));
};

//$("#mydiv").append('GeoJSON data: ' + JSON.stringify(mydata));
if(typeof mydata === 'undefined') {
    console.log("undefined data")
} else {
    console.log("not undefined")
}
$(document).ready(debugAjax());

2 个答案:

答案 0 :(得分:0)

避免定义几个函数并尝试使用它:

$(document).ready(function(){
    $.ajax("data/MegaCities.GeoJSON", {
        dataType: "json",
        success: function(response){
            $("#mydiv").append('<br>GeoJSON data:<br>' + JSON.stringify(response));
        }
    });
});

请注意,在我们从ajax调用获取响应/数据后,我们将格式化为JSON。

答案 1 :(得分:0)

您正在使用var mydata并且未定义,因此当您将其作为值传递时,它会显示正确的消息undefined

你应该像这样修改你的代码。

$(document).ready(function(){
   $.ajax({
    url: "data/MegaCities.GeoJSON",
    method: 'GET' ,
    aysnc: false,
    success: function(response){
        $("#mydiv").append('GeoJSON data:' +response);
    }
  });
});