У меня есть эта функция для получения идентификатора сервера из списка. Функция всегда возвращает «parsererror». Я просмотрел данные JSON, но я не могу заставить его работать, поскольку jQuery переписал ajax в версии 1.5.
function server_id() { $.ajax({ type: "GET", url: "http://localhost/server_list.php", dataType: "json", success: function(data, status) { alert(status + "\n\n" + data.server_id); }, complete: function(data, status){ alert(status); } }); }
server_list.php
header('Content-type: application/json'); $output['server_id'] = '123'; print json_encode($output);
В Firebug Net >> XHR читает его как JSON, когда он открывает вкладку, а вкладка «Ответ» показывает, что ниже.
{"server_id":"123"}
Я также попытался настроить заголовок типа контента, как показано ниже, но не повезло.
Content-type: application/json
ОБНОВЛЕНО
Я получаю «parsererror», если плагин проверки загружается из http://bassistance.de/jquery-plugins/jquery-plugin-validation docs.jquery.com/Plugins/Validation v1.7 .
Если вы добавите plug jquery, то автоматически добавит обратный вызов jsonp в строку запроса, даже если вы установите значение false или не включите parms для jsonp. Очень странно
Любые идеи о том, как исправить?
благодаря
Кажется, вам нужна регулярная json-связь ( dataType
– это «json» вместо «jsonp», а server_list.php
отправляет json), но вы устанавливаете параметры jsonp
. Удалите jsonp
и jsonpcallback
. Установка jsonp
на false
не означает, что вы отключите его!
Когда эти две строки прокомментированы, все работает нормально .
Простым решением здесь является то, что jQuery 1.5 несовместим с 1.7 плагина проверки. Переход к jQuery 1.4.x (или, в противном случае, исправление или удаление кода плагина проверки в качестве предложенного филамента) решает проблему.
Огромное спасибо тем в этой теме, кто определил конфликт. Это спасло мне кучу головных болей, чтобы отладить код jQuery.
Я страдал несколько дней, прежде чем найти эту тему, благодаря тем, кто указал на jQuery.validate в качестве виновника.
В моем тестировании на самом деле кажется jquery.validate-vsdoc.js, который вызывает проблему, а не сам плагин, в случае, если это будет полезно для кого-либо еще.