";未捕获的SyntaxError:意外的令牌ILLEGAL“;当我通过AJAX发送html时


"Uncaught SyntaxError: Unexpected token ILLEGAL" When I send html through AJAX

我有一个iframe,它是可编辑的,可以用作博客的帖子输入。我使用jQuery从iframe:的主体中检索html

function sharePost (feedNumber)
{
  var postBox = $("#ifrNewPost" + feedNumber).contents(); // Gets iframe content
  var postContent = $('body', postBox).html(); // Gets iframe body
  var params = { post: encodeURI(postContent) };
  // Send to server
  $.ajax({
    type:'POST', 
    url: 'script/post.php', 
    data: params, 
    success: function(response) {
      $(document).append(response);
    }
  });
}

我的问题是,当我把一些东西粘贴到iframe中时,我粘贴的东西的开头似乎添加了一行换行符,然后提交时,脚本失败了:"未捕获的SyntaxError:意外的令牌非法"

我尝试过encodeURI和encodeURIComponent,但都没有成功。当我在粘贴后查看页面的代码时,我粘贴的内容没有明显的变化,只是在它之前添加了一行新行。关于如何将HTML安全地发送到我的php脚本,有什么解决方案吗?

问题在于php代码到底返回了什么!只需运行regex将任何换行符更改为br就完成了任务!

$post = preg_replace("/('r'n|'n|'r)/", "<br />", $post);

使用nl2br

$post = nl2br($post);