2012-11-08 110 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