我有以下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数据,它就可以正常工作。
怎么回事?
答案 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)
您可以使用escape
,encodeURI
或encodeURIComponent
,但escape
是每个浏览器支持的唯一方法,但大多数是现代的浏览器支持后者。
<强>参考强>
查看this文档,该文档很好地解释了这三个文档。
答案 4 :(得分:0)
该空间可能会导致问题 - 请尝试javascript的encodeURIComponent()
:
var msg = encodeURIComponent($("#newmessage").val());
var user = encodeURIComponent($("#userchat").val());