Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript js从AJAX添加图层_Javascript_Jquery_Html_Asp.net_Ajax - Fatal编程技术网

Javascript js从AJAX添加图层

Javascript js从AJAX添加图层,javascript,jquery,html,asp.net,ajax,Javascript,Jquery,Html,Asp.net,Ajax,我有一个ASP.NET网站,其中包含一个用于显示数据的传单地图实例。我有一些下拉列表,它们通过jQuery更改fire事件,这些下拉列表依次接受下拉列表值并将它们传递给一个Web服务,该服务从服务器检索新数据。此数据是geoJson数据,以字符串形式返回。尝试将此新数据应用于地图无效。这是代码,我知道返回的内容是正确的,我已经将其输出到一个Div,复制并手动加载了它,它工作得很好。现在就为了这个把我的头发扯下来 我将返回结果输出到一个div以证明它是有效的 $("#MainContent_Dro

我有一个ASP.NET网站,其中包含一个用于显示数据的传单地图实例。我有一些下拉列表,它们通过jQuery更改fire事件,这些下拉列表依次接受下拉列表值并将它们传递给一个Web服务,该服务从服务器检索新数据。此数据是geoJson数据,以字符串形式返回。尝试将此新数据应用于地图无效。这是代码,我知道返回的内容是正确的,我已经将其输出到一个Div,复制并手动加载了它,它工作得很好。现在就为了这个把我的头发扯下来

我将返回结果输出到一个div以证明它是有效的

$("#MainContent_DropDownList1").change(function () {

    $.ajax({

        url: "services/AJAXMapping.asmx/GetNewData",
        dataType: "text",
        type: "POST",
        data: { species: $(this).val() },
        error: function (err) {

            alert("Error: " + err.responseText.toString())

        },
        success: function (data) {

            $("#testarea").html(data);
            geojson.clearLayers();

            geojson = L.geoJson((data), {
                style: choroStyle,
                onEachFeature: onEachFeature
            }).addTo(map);

        }
    });

});

我认为问题在于您没有将json字符串解析为对象

geojson = L.geoJson((JSON.parse(data)), {
    style: choroStyle,
    onEachFeature: onEachFeature
}).addTo(map);
或者,在使用jquery时,可以使用$.parseJSONdata代替JSON.parsedata

您还可以将ajax调用的数据类型设置为json,但如果您仍然希望将geojson数据输出到div,则必须将数据对象转换回字符串。 您可以使用JSON.stringifydata执行此操作


如果这不能解决您的问题,请发布您收到的错误消息。

是的,您是对的,我正为此而大发雷霆。数据以Json字符串的形式从web服务返回,但它是用XML包装的。我将字符串解析为XML,获取内部字符串,然后使用jQuery函数将其解析为json。明天开始工作时,我会用代码解决方案来更新它,希望它能帮助其他人。