2011-12-22 3 views
1

Может кто-нибудь сказать мне, почему в мире я продолжаю получать parseerror в консоли со следующим кодом?Почему я получаю parseerror при использовании jQuery ajax()?

$.ajax({ 
    url : "file.php", 
    data : data, 
    dataType : "json", 
    success : function (request) { 
     console.log("success"); 
    }, 
    error : function (request, error) { 
     console.log(error); 
    } 
}); 

Я подтвердил свой JSON с помощью jsonlint.com, и он действителен.

заголовки ответа возвращаются на вкладке Net из Firebug являются:

Content-Length 19

Keep-Alive Тайм-аут = 5, макс = 96

соединения Keep-Alive

Content-Type приложения/JSON

+0

Что вы видите на вкладке NetBoard Firebug? – SLaks

+0

Есть ли более подробная информация об ошибке? – BNL

+1

Код, который вы опубликовали, не вызывает ошибок, какова ваша точная ошибка? Возможно, имя или значение ввода формы (я предполагаю) содержит недопустимые символы. – Jasper

ответ

2

Это, как вы можете отправить JSON из PHP

$response = array("title" => "One"); 

echo json_encode($response); 

Если { «Название»: «Один»} - ответ, Content-Length ответа должен быть , но из вашего описания я вижу, что это . Так что что-то не так в ответной строке json, пожалуйста, проверьте его.

+0

На скриншоте я могу понять, что ответ json, но строка закодирована в json. Обычно это происходит, когда мы делаем это так: 'echo json_encode ('{" title ":" One "}');' Либо вы можете установить тип содержимого как json и использовать 'echo '{" title ":" One "};' или создать объект ответа и закодировать его json и использовать echo следующим образом: '$ response = array (" title "=>" One "); echo json_encode ($ response); ' – Diode

+0

Спасибо за помощь. Оказалось, что в моем PHP-файле произошла ошибка. – Zoolander

0

Возможно, что name или value из this могут иметь недопустимые символы. Вместо того, чтобы стряпают собственный data строку, как о разрешении JQuery сделать это для вас:

data = $this.serialize(); 
+0

@ Zoolander Я знаю, что вы опубликовали код, который объявил 'dataType: 'json'', но я просто должен проверить, вы не устанавливаете' dataType:' jsonp'', так? Поскольку ответ почти наверняка создавал ошибку синтаксического анализа, если 'dataType' неправильно установлен ... – Jasper

+0

@ Zoolander Может быть установлено приложение contentType: application/json; charset = utf-8?'? – Jasper

+0

@ Zoolander Hows about: '$ .getJSON ('file.php', data, function (response) {console.log ('success');});'? – Jasper

 Смежные вопросы

  • Нет связанных вопросов^_^