您好我不知道为什么这个脚本只适用于Internet Explorer,完全在从ajax调用返回的方法中。看看剧本
function saveMap() {
if (confirm("Esta seguro de guardar el mapa?")) {
// alert("Estas en el centro:" + map.getCenter().toString() + "Con zoom: " + map.getZoom().toString());
var mapData = new Array(map.getCenter().lat().toString(),
map.getCenter().lng().toString(),
"Esto es una prueba",
map.getZoom().toString());
$.ajax({
type: "POST",
url: "SaveMap.aspx/saveMapData",
data: "{mapData: '" + mapData + "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (flag) {
//this block of code only works in IE
if (flag)
alert("Se guardo el mapa de manera correcta");
else
alert("Ocurrio un error en la ejecucion");
}
});
}
}
这是我在aspx.net中的方法签名
[WebMethod()]
public static bool saveMapData(string mapData)
{
//do something
return true;
}
答案 0 :(得分:1)
我有一个想法,为什么脚本在IE中工作但在其他浏览器中没有。首先取a look here(also here),你会发现从你返回的json ASP.NET WebMethod以d开头:
{"d":"something_json"}
所以在你的位置我会做那样的事情:
success: function (flag) {
//this block of code only works in IE
if (flag.d)
alert("Se guardo el mapa de manera correcta");
else
alert("Ocurrio un error en la ejecucion");
}
我可能认为这是因为IE是Microsoft软件,可以比其他浏览器更好地读取json和{"d":"something_json"}
。