2011-03-15 71 views
1

我的應用程序基於Ajax請求/響應。我創建了所有參數的對象,並使用jquery param()方法創建查詢字符串。它工作正常,但是當某些參數包含「&」時,它不會正確編碼,因此服務器在此情況下返回錯誤。當數據包含「&」字符時,有人可以告訴我如何在這種情況下創建查詢字符串嗎?jquery param()沒有正確編碼參數,其中包含「&」

var url = "http://www.abc.com" 
    url += "?username='abc'"; 
    url += "&" + $.param(params); 

/* 
    params values are follows: 

    params[name] = 'test' 
    params[id] = 1234 
    params[xyz] = 'entertainment & games' 
*/ 

同時建議,如果我必須要改變在服務器端腳本一些解碼此正確

+0

它爲我...我得到這個:'&名稱=測試&ID = 1234&XYZ =娛樂+%26 + games'。你能發佈一個完整的代碼片段嗎? – 2011-03-15 10:46:45

回答

3

jQuery.param()方法編碼預期。這段代碼...:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head><title></title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script type="text/javascript"><!-- 
jQuery(function($){ 
    var params = { 
     name: "test", 
     id: 1234, 
     xyz: "entertainment & games" 
    }; 

    var url = "" 
    url += "&" + $.param(params); 

    alert(url); 
}); 
//--></script> 
</head> 
<body> 


</body> 
</html> 

...資訊:&name=test&id=1234&xyz=entertainment+%26+games

你不說什麼錯誤,但值得注意的是,一個有效的查詢字符串應該?而不是&開始:

var url = "" 
url += "?" + $.param(params); 
+0

嘿謝謝...我在我的代碼中遇到了問題。實際上,這些內容是在我的「li」元素中動態填充的,其中「娛樂和遊戲」出現,並且我使用$(「li」).html()讀取,所以它返回類似於「娛樂&遊戲」的內容,然後我放在$ .param()中。現在我用$(「li」)。text()更改了它。 BTY謝謝:) – Bhupi 2011-03-15 11:42:28

1

一點考慮:

Probabily先前由 「 'ABC'」 值「userna生成的錯誤我」參數...

url += "?username='abc'"; 

正確的方法應該是:

url += "?username=abc";