为什么这个javascript只适用于IE浏览器

时间:2011-05-23 14:56:16

标签: javascript jquery ajax

您好我不知道为什么这个脚本只适用于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;
}

1 个答案:

答案 0 :(得分:1)

我有一个想法,为什么脚本在IE中工作但在其他浏览器中没有。首先取a look herealso 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"}