У меня странная проблема при получении текста в формате JSON. Я использую jQuery post
для отправки некоторых данных (также отформатированных в формате JSON) на сервер (с PHP), который работает нормально. Затем, когда я запрашиваю те же данные с сервера, используя jQuery get
, метод обратного вызова никогда не выполняется. Это происходит только тогда, когда данные отформатированы в формате JSON, а данные содержат разрыв строки. Когда я не использую форматирование JSON, оно работает нормально. Меня сбивает с толку то, что нет проблем с загрузкой данных.
Код загрузки: (работает)
$.post("ajax/contents_ajax.php", {
'title': caption,
'text': frameText().getContent(),
'image_id': img
},
//Callback
Код загрузки: (не работает с переносами строк)
$.get("ajax/contents_ajax.php", { 'get_item': id },
function (data){
//Never gets executed if data contains line breaks
}
,'json');
Вся проблема связана с тем фактом, что редактор расширенного текста TinyMCE, похоже, настаивает на вставке разрывов строк везде, хотя я включил параметр
remove_linebreaks : true
Я предпочитаю иметь разрывы строк, но не если они нарушают мой код. Может кто-нибудь сказать мне, в чем здесь проблема, и, возможно, как я могу кодировать разрывы строк на сервере с помощью PHP?
Обновление
Хотя предложения о замене '\n'
на ''
не работали, это было близко к правильному решению. Этот код удалил оскорбительные символы:
function parse($text){
$parsedText = str_replace(chr(10), "", $text);
return str_replace(chr(13), "", $parsedText);
}