почему этот JavaScript работает только в IE Explorer - PullRequest
1 голос
/ 23 мая 2011

Привет, я не знаю, почему этот скрипт работает только в 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 Ответ

1 голос
/ 23 мая 2011

У меня есть одна идея, почему скрипт работает в IE, а не в других браузерах. Сначала посмотрите здесь ( также здесь) и вы обнаружите, что 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"} лучше, чем другие браузеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...