У меня возникла странная проблема при получении форматированного текста 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?
Update
В то время как предложения о замене '\n'
на ''
не работали, это было близко к правильному решению. Этот код удалил оскорбительные символы:
function parse($text){
$parsedText = str_replace(chr(10), "", $text);
return str_replace(chr(13), "", $parsedText);
}