2010-06-15 61 views
1

我得到jQuery的錯誤,當我路過#包含得到錯誤傳遞#查詢字符串值

 var url = "/CheckVol/SaveItem?status=" + status + "&name=" + name ; 
$.post(url, function(data) { 

}); 

這裏名字中含有「我的名字#潘卡#羅哈尼#印度,這是產生誤差。

+1

是否有一個原因是你在做一個帖子時把數據放在查詢字符串中?你能不能只發布實際數據? – 2010-06-15 19:29:38

+0

優點尼克。 – 2010-06-15 19:30:11

回答

2

如果您使用空格,#或?還有其他一些角色。在查詢字符串值中,它們必須被編碼。 #字符可以編碼爲uisng%23。但尼克的評論是正確的。你已經在做一個帖子。爲什麼不在你的發佈數據中包含你的Querystring?

您需要使用%喜歡使用encodeURIComponent()這個

name = name.replace("#", "%23"); 

var url = "/CheckVol/SaveItem?status=" + status + "&name=" + name ; 
2

可能編碼23

東西編碼#,就像這樣:

var url = "/CheckVol/SaveItem?status=" + encodeURIComponent(status) + 
           "&name=" + encodeURIComponent(name); 
$.post(url, function(data) { }); 

但它會更好地發佈實際數據,如下所示:

$.post("/CheckVol/SaveItem", { status: status, name: name }, function(data) { }); 

雖然這需要服務器在這裏查找,但這是我認爲更合適的解決方案。