当参数包含html标记时,Ajax调用失败

时间:2014-12-02 11:34:19

标签: javascript jquery html ajax

我有这个ajax:

 $.ajax({
      url: '/PostComment/AddComment',
      type: 'POST',
      dataType: 'json',
      cache: false,
      data: { "PostId": PostId, "CommentText": CommentText },
      success: function (data){
           alert('Ok');
      }
 });

问题是,当CommentText变量包含任何html标记时,ajax调用失败。我知道这是一个奇怪的问题,但这就是发生的事情。

2 个答案:

答案 0 :(得分:2)

尝试将编码值发送到服务器端:

commentText = encodeURIComponent(commentText);

在服务器端,如果您使用的是Java,那么您可以这样做:

String commentStr = URLDecoder.decode(request.getParameter("commentText"), "UTF-8");

答案 1 :(得分:2)

在javascript中:

JSON.stringify(CommentText));

See : 4 Things You Must Do When Putting HTML in JSON