繁体   English   中英

Ajax加载URL中的空间有问题

[英]Ajax load issues with space in url

我有2个python文件: gui.pyindex.py

python.py包含带有mysql数据库记录的表。

gui.py包含python.py和带按钮的文本字段,用于发送消息。

另外, gui.py包含的JavaScript将使用参数加载新的python.py

gui.py脚本

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("#content").load("http://localhost/index.py");
    $("button").click(function(){
        var url = "http://localhost/index.py?name=1&message=";
        var msg = document.getElementById("message").value;
        var res = url.concat(msg);
        alert(res); //here I always can understand that result URL is okay.
        $("#content").load(res);
    });
</script>

index.py部分

cursor.execute("INSERT INTO `messages` (`sender`, `receiver`, `text`, `time`) VALUES ('" + req.form['name'] + "', '3', '" + req.form['message'] + "', now())")
});

其中req来自def index(req): 我正在使用mod_python

因此,问题是 -当我尝试发送带有空格的消息时-我的表消失了(直到下一页刷新(但是我不需要在没有空格的情况下刷新它,ajax加载在这里工作得很好))。 然后,我将仅看到消息的第一个单词。 如您在我的代码中所见,我有alert(res); 如果我复制该警报并仅运行该URL,则空格可以很好地工作。

一些细节

我正在使用ubuntu 14.04,apache2,mod_python,python 2.7,mysql数据库,python-MySQLdb。

您应该对邮件正文进行URL编码,以防止URL中的特殊字符(例如空格)。 如果你做了

var msg = encodeURIComponent( document.getElementById("message").value );

您可能会有更好的成功。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM