jquery - 使用 jQuery 检索包含换行符的 JSON 格式文本时出现问题

标签 jquery json tinymce line-breaks

我在检索 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);

}

最佳答案

如果您想保留换行符,您可以尝试:

function parse($text) {
    // Damn pesky carriage returns...
    $text = str_replace("\r\n", "\n", $text);
    $text = str_replace("\r", "\n", $text);

    // JSON requires new line characters be escaped
    $text = str_replace("\n", "\\n", $text);
    return $text;
}

关于jquery - 使用 jQuery 检索包含换行符的 JSON 格式文本时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/395379/

相关文章:

特定行的 Jquery div 选择器

javascript - 拖放三 Angular 形

java - 将 JSON 字符串转换为 json 对象

javascript - 更改动态生成的对话框的标题

jquery - 如何在 jQuery 中获取上一个 <LI>

javascript - 在单击按钮之前, Highcharts 显示为空

javascript - AJAX:WAITING响应?

javascript - 如何使用 Nightwatch.js 设置tinyMCE 的内容

javascript - TinyMCE onmouseover 事件,无需单击即可打开菜单项

javascript - 在一个容器中我有文本和 img 标签,我怎样才能只用 js 或 jquery 获取文本