控制台中的 GeoJson “格式不正确”消息,并且显示为未定义

GeoJson "Not Well Formed" message in console, and appears undefined

本文关键字:消息 显示 未定义 格式不正确 GeoJson 不正确 格式 控制台      更新时间:2023-09-26

我在下面包含了我的脚本的末尾,我正在尝试使用 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());

避免定义多个函数,并尝试仅使用它:

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

请注意,从 ajax 调用获得响应/数据后,我们继续格式化为 JSON。

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

您可能应该像这样修改代码。

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