jquery ajax中的pound字符(#)

时间:2012-11-08 09:22:06

标签: jquery ajax

在下面的代码中;它获取“div”的内容包括html代码,并保存在ajsave.php。但是当div html内容包含“#”字符时,数据会在“#”之后缩短,如下所示:

$.ajax({ 
    type: "GET", 
    url: "ajsave.php", 
    data: "usr="+id+"&divcontent="+cont, 
    success: function(msg){
        $("#result").html(msg); 
}});

2 个答案:

答案 0 :(得分:2)

在URL中,#字符用于指定锚点 - 您要将页面移动到的页面的一部分 - 因此Web服务器会忽略该字符。为了解决这个问题,您需要使用encodeURIComponent()函数在客户端(在您的JavaScript代码中)将其转义,然后在服务器上对其进行转义。

答案 1 :(得分:0)

这是因为#是在页面中定义锚点以便将其删除...我建议您使用POST而不是GET,它会纠正您的问题并防止更多问题。如果您仍想在GET中使用它,请执行以下操作:

cont = cont.replace("#","%22");