2012-11-08 75 views
0

下面的代码;它会获取包含html代码的“div”的内容,并保存在ajsave.php中。但是,当DIV的HTML内容包括“#”字符,数据被“#”这样的短接后:英镑字符(#)在jquery ajax

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

回答

2

#字符用于指定锚的URL - 要在页面移动到页面的一部分 - 所以被忽略你的网络服务器。为了解决这个问题,您需要使用encodeURIComponent()函数在客户端(在您的JavaScript代码中)转义它,然后在服务器上使用它。

0

这是因为#是在页面所以它被删除定义锚...我会建议你使用POST而不是GET,它会纠正你的问题并防止更多。如果你仍然想拥有它的GET,这样做:

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

英镑字符“#”可以被URL编码为“%23”。上面提到的“%22”会解码为双引号 – gabor