Javascript js从AJAX添加图层
我有一个ASP.NET网站,其中包含一个用于显示数据的传单地图实例。我有一些下拉列表,它们通过jQuery更改fire事件,这些下拉列表依次接受下拉列表值并将它们传递给一个Web服务,该服务从服务器检索新数据。此数据是geoJson数据,以字符串形式返回。尝试将此新数据应用于地图无效。这是代码,我知道返回的内容是正确的,我已经将其输出到一个Div,复制并手动加载了它,它工作得很好。现在就为了这个把我的头发扯下来 我将返回结果输出到一个div以证明它是有效的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
$("#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。明天开始工作时,我会用代码解决方案来更新它,希望它能帮助其他人。