我正在使用jQuery ajax api將文本作爲參數提交(POST/GET)到處理頁面。使用javascript escape()時使用UTF-8缺少請求參數
<input type="text" id="txtboxdata" name="txtboxdata" >
var dataString = "tmpVar="+ escape($("#txtboxdata").val());
$.ajax({ type: "POST",
url: "processing.jsp",
data: dataString ,
dataType: "json",
success: function(){}
});
//dataString holds the parameter and value to be passed. Value is retrieved from a text box.
如果文本框
- 包含UTF-8字符
和 - 應用JavaScript的 「逃離」 上的文本框的值
則該參數tmpVar去從處理頁面(processing.jsp)中的請求對象中消失。
我使用了調試器,並檢查了請求對象。名爲「tmpVar」的參數從不出現。
此正常工作時,滿足以下條件
tmpVar示出了在processing.jsp的請求對象時
- 沒有UTF-8字符。
- 在進行ajax調用之前,我不應用「逃脫」。
我的問題 我想明白爲什麼含UTF-8的請求對象不會出現文字應用逃生? PS:我用「form serialize()」來解決這個問題,試圖理解問題出現的原因。
Firebug:看起來很好,它總是顯示正確。實際POST/GET之前沒有丟失數據。
什麼是HTTP請求看起來發送不被看到,導致'tmpVar'變量的請求時,什麼樣的?使用Firebug或Chrome捕獲這些文件併發布它們 – 2011-06-02 13:51:30