我在表单中有一个隐藏参数,其值为
custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles
我想在发送之前对其进行编码,以便可以将 & 之类的字符替换为 %26 etch
我尝试使用 javascript 内置 encodeURI("urlToencode") 但不编码像 & 之类的字符?
我在表单中有一个隐藏参数,其值为
custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles
我想在发送之前对其进行编码,以便可以将 & 之类的字符替换为 %26 etch
我尝试使用 javascript 内置 encodeURI("urlToencode") 但不编码像 & 之类的字符?
试试这个代码行,
encodeURIComponent("fisrtName=scott&lastName=Miles");
使用https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent
您需要在 URL 查询字符串的每个动态部分(名称和值)上调用它。所以问题是什么是 URI 组件,custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles
它看起来并不像 URL,因为你=
在?
我能做出的最有意义的事情是完整的 URL 类似于
http://myserver/file.do?custAddress=CustomerAddress.do?fisrtName=scott&lastName=Miles
在这种情况下,您应该构建您的 URL,例如
var custAddress = "CustomerAddress.do?fisrtName=scott&lastName=Miles";
var initialPath= "/path/to/file.do?";
var url = initialPath + "custAddress=" + encodeURIComponent(custAddress);
既然你提到jQuery
了,你可以使用$.param
, 看起来更干净并为你做编码,你可以一次给它多个查询参数
var url = initialPath + $.param({
custAdrress: custAddress,
otherParam: "paramVal",
// Both the param name and value need to be encoded and $.param does that for you
"funny Name & Param": "funny & value ="
});