我使用jquery ajax api将一个文本作为参数提交(POST / GET)到处理页面。
<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.
如果是文本框
然后参数tmpVar从处理页面中的请求对象(processing.jsp)中消失。
我使用了调试器,并检查了请求对象。名为“tmpVar”的参数从不显示。
满足以下条件时,此功能正常
当
我的问题 我想了解为什么在包含UTF-8的文本上应用escape不会出现在请求对象中?
PS:我使用“form serialize()”来解决问题,只是试图理解问题发生的原因。
Firebug:看起来不错,这总能正确显示出来。在实际POST / GET之前没有丢失数据。
答案 0 :(得分:1)
您应该致电encodeURIComponent
。
答案 1 :(得分:1)
使用@SLaks提供的答案做了一些更多的研究,并找到了满意的答案。
解释为什么不应该使用“逃逸”并将其与可以使用的其他方法进行比较。