快速Jquery .load聊天无法正常工作

时间:2012-08-01 14:31:00

标签: javascript jquery chat

我有以下jquery:

var msg = $("#newmessage").val();
var user = $("#userchat").val();

var filename = "/inc/chat.php?msg="+msg+"&user="+user; 
alert(filename);
$("#chatData").load(filename);

当'msg'中没有空格时,#chatData加载正常并发布变量。

当它确实有空格时,我只得到一个空白的div。没有任何信息。

如果我加载将数据插入数据库的php文件,并手动输入相同的GET数据,它就可以正常工作。

怎么回事?

5 个答案:

答案 0 :(得分:2)

尝试使用

encodeURIComponent(msg)

答案 1 :(得分:2)

还要考虑:

$("#chatData").load('/inc/chat.php', 
    { 'msg' : $("#newmessage").val(), 'user' : $("#userchat").val() }
);

如果需要,可以通过jQuery完成URI编码。

您不必担心URI编码,因为使用POST方法,因为数据是作为对象(source)提供的。

在这种情况下,POST可能比GET更好。

如果您在php文件中使用$_GET,则需要使用$_REQUEST$_POST

答案 2 :(得分:0)

您必须先使用encodeURIComponent()对邮件进行编码,然后使用urldecode()在服务器上进行解码。

执行此操作将转义/编码在url中不允许的特殊字符,否则将破坏您的查询字符串(如消息中的&,否则将启动新参数)。

答案 3 :(得分:0)

您可以使用escapeencodeURIencodeURIComponent,但escape每个浏览器支持的唯一方法,但大多数是现代的浏览器支持后者。

<强>参考

查看this文档,该文档很好地解释了这三个文档。

答案 4 :(得分:0)

该空间可能会导致问题 - 请尝试javascript的encodeURIComponent()

var msg = encodeURIComponent($("#newmessage").val());
var user = encodeURIComponent($("#userchat").val());