#javascript #jquery #ajax
#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. Что происходит, когда код не работает? Было бы полезно получить более подробную информацию о проблеме.
2. Какие браузеры вы пробовали, кроме IE? В какой версии IE это работает? Какую ошибку вы получили в других браузерах, которые не работали?
3. @Andy когда я отлаживаю код, я вижу, что он работает. но только когда я отлаживаю скрипт в браузере. но не эксплуатируйте или что-то в этом роде
4. @Matt я пробовал в Firefox 4, Chrome и IE 8
5. Как выглядит сигнатура метода вашего веб-метода (т. Е. Какие параметры он принимает и какие они типы)? Я полагаю, что проблема, с которой вы столкнулись, связана с тем, как вы передаете этот массив.
Ответ №1:
У меня есть одна идея, почему скрипт работает в IE, но не в других браузерах. Сначала посмотрите здесь (также здесь), и вы обнаружите, что json, возвращенный от вас ASP.NET Веб-метод начинается с 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"}
лучше, чем другие браузеры.
Комментарии:
1. @Jorge Переходит ли WebMethod внутрь
SaveMap.aspx/saveMapData
тела метода при отладке с помощью точки останова?2. @Jorge Во-вторых, пожалуйста, укажите подпись вашего веб-метода или даже исходный код. Приветствия!
3. @r.piesnikowski да, метод asp работает, а метод mi — это метод, который я изложу в своем вопросе, дайте мне одну секунду, чтобы изменить содержимое
4. @Jorge Вы изменили свой код или он работал сам по себе? 🙂