JQuery 1.4 ломает мою программу - PullRequest
2 голосов
/ 15 января 2010

Я извлекаю html из своей базы данных с помощью запроса jquery ajax.

Однако, если есть одинарная кавычка ('), я получаю ошибку синтаксического анализа.

Обычные кавычки работают нормально (").

Например, в моей базе данных есть:

style=font-family:"times' new roman"

(я поставил туда 'после нескольких раз для тестирования). С 'ушел, это работает ...

Запускаю запрос:

$.ajax({
       url: "phps/file.php?id="+id,
       dataType: "json",
       error: function(uno,dos,tres){

Мой php-файл:

$code = mysql_real_escape_string($results['code']);
//return
header('Content-type: application/x-json');
echo '{';
echo '"code": "' . $code. '"';
echo '}';

Функция ошибки jquery дает мне:

[object XMLHttpRequest]
parsererror
undefined

Я думаю, что это проблема, но я не знаю, как ее исправить:

Теперь мы строго относимся к входящему JSON и создаем исключение, если получим искаженный JSON. Если вам нужно оценить неверно сформированный JSON, который является допустимым JavaScript, вы можете сделать текстовый запрос и использовать eval () для оценки содержимого.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 15 января 2010

Я бы изменил ваш PHP на:

header('Content-Type: application/json');
echo json_encode(array('code' => $code));

А именно, измените тип MIME на application/json и используйте собственный PHP json_encode() вместо того, чтобы вручную создавать JSON.

2 голосов
/ 15 января 2010

Я думаю, что лучше всего было бы использовать json_encode :

header('Content-type: application/x-json');
echo json_encode($results);`

Или вы можете заменить «с \» в строке, и это должно быть допустимым JSON из того, что я вижу. str_replace("\"", "\\"", $code)

Или, если ни один из этих параметров не работает, выполните текстовый запрос с помощью jQuery. Хотя я не уверен в точном синтаксисе.

Этот валидатор JSON может оказаться полезным для вас: http://jsonformatter.curiousconcept.com/

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