我正在使用AJAX进行Struts动作,一切都很好但是Firefox有问题,当我将URL中的参数作为请求参数传递时,如果该参数最后包含hash(#)符号,则firefox会删除所有内容在该符号之后,将该参数发送到没有它的操作.
例如,如果我在Firefox中传递test123#abcd,那么我在动作类中只得到test123而不是test123#abcd,这对我的要求是不可取的.对于IE它完全正常工作.我有什么方法可以提取完整参数,包括Firefox中的#符号.
JS片段
var valuePassword=test123#abcd;
var url = "/test/ChangePwdAjax.do?newPass="+valuePassword;
var xmlHTTP = getXMLHTTPRequest();
解决方法:
采用
var url = "/test/ChangePwdAjax.do?newPass="+ encodeURIComponent(valuePassword);
这会将valuePassword编码为有效的URL组件,该组件可以作为URL中的查询字符串传递
另一方面,您应该使用decodeURIComponent从编码字符串中获取值
var value = decodeURIComponent(valuePasswordPassed);
要了解有关此Go here的更多信息