Я сделал функцию AJAX с помощью jQuery. Функция работает правильно, и сервер возвращает JSON, но я не могу использовать его в своем скрипте JS
Серверная сторона:
$array = array();
$array["count"] = count($accounts_list)."";
for($i=0; $i<count($accounts_list); $i++)
{
$account = $accounts_list[$i];
$array["marker"]["name"] = $account->name;
$array["marker"]["lat"] = $account->map_latitude;
$array["marker"]["lon"] = $account->map_longitude;
}
echo json_encode($array);
Клиентская сторона:
$.ajax({
type: "POST",
url: "index.php?module=cap_Maps&action=AddMarkers",
data: dataString,
dataType: "json",
success: function(data) {
if (data == "error"){
$(".tr_legend").before("<tr><td colspan='2' id='error'><span class='error_maps'>Erreur lors du chargement des marqueurs</span><td><tr>");
}
else {
alert(data);
var obj = jQuery.parseJSON( data )
alert (obj.count);
}
}
});
JSON возвращается сервером:
{"count":"371","marker":{"name":"WAMPFLER","lat":"49.02751610","lon":"2.10611230"}}
Функция alert(data)
возвращает мой JSON, но если я попытаюсь разобрать его с jQuery.parseJSON( data )
, он не будет работать и alert(obj.count);
не откроется.
EDIT
Я добавил функцию ошибки:
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
},
И произошла ошибка:
XMLHttpRequest={"count":"358"}
textStatus=parsererror
errorThrown=Invalid JSON: {"count":"358"}
EDIT
Если в моем AJAX было contentType: "application/json",
, я могу вернуть статическую строку, которая считается json, но если я попытаюсь выполнить другой php-код на моем сервере, AJAX вернет 500 Internal server error