2012-03-03 86 views
0

我已经遍布网络寻找解决这个问题的方法。但找不到解决办法。发送时jQuery AJAX POST JSON错误?或&到服务器

这里是我的jQuery:

function fetchMsg (type, msg, msgid) { 
    $.ajax({ 
     type: "POST", 
     url: "fetchmsg.php", 
     data: "type=" + type + "&msg=" + msg + "&msgid=" + msgid, 
     dataType: "json", 
     cache: false, 
     success: function(data){ 
      $.each(data.msgs, function(i,item){ 
       $('.messages ul').append("<div class='msgstyle id='"+item.usid+"'><li class='msgname'>"+item.fname+" "+item.lname+"</li>"+"<li class='msgid' id='"+item.msgid+"'>"+item.msg+"</li></div>"); 
      }); 
     } 
    }); 
    return false; 
} 

的问题是当我输入?或&作为消息,我得到一个错误,如:jQuery17104689251377712935_1330746677552

有关修复此问题的任何建议?这实际上是插入到数据库中的消息(而不是实际的?或&字符)。我试过JSON.stringify,但是它将双引号添加到问题标记中,并且它完全删除了字符串中的&,所以它似乎不是理想的解决方案。

预先感谢您。

+0

绝对。对于那个很抱歉。我是新来的。 – 2012-03-03 04:01:24

回答

2

您需要URL编码消息:

data: "type=" + type + "&msg=" + encodeURIComponent(msg) + "&msgid=" + msgid, 
+0

非常感谢。这工作完美! – 2012-03-03 04:08:31

4

如果使用数据对象不应该有任何问题。让jQuery的编码它

data: {type: 'type', msg: 'msg', msgid: 'msgid'} 
相关问题