我有一个javascript函数,它使用一些捕获的参数构建一个URI片段,然后提交我的表单。
示例:
function consultResource(contextName){
var form = document.forms[0];
var f1 = form.thename.value;//accepts strings without special symbols
var f2 = escape(form.thedate.value); //accepts only strings in the form 'dd/mm/yyyy'
var action = "/"+contextName+"/CtrlComparison?name="+f1+"&date="+f2;
form.action = action;
form.submit();
}生成的URI片段的示例如下
/MyContext/CtrlComparison?name=report01&date=06/05/2011
这个片段可以工作,提交表单并带来PDF文档OK:
f 211
但我也需要它在9中工作。目前,当我在IE9中提交相同的信息时,我会收到以下消息:

而不是这样的:

IE9不会转义/并将其作为URI上的路径分隔符的一部分。
问题是:如何才能在IE9中正确地生成URI片段?
提前谢谢。
发布于 2011-05-06 17:54:56
这不是您的表单或操作URL的问题。当您写出PDF时,您需要发送正确的标题。
在您的php头(“内容-处置:附件;filename:comparativoCajasRegistradas.pdf");
发布于 2011-05-06 18:13:54
对于查询参数值,您可能希望尝试encodeURIComponent而不是escape。
-- encodeURIComponent()函数编码一个URI组件。
此函数对特殊字符进行编码。此外,它还编码了以下字符:,/?:@&=+$ #
发布于 2011-05-06 17:10:16
转义函数对特殊字符进行编码,但*@-_+除外。/。所以在客户端替换它,然后把它放回服务器端。
JS
var f2 = form.thedate.value.replace(/\//g, "x");JAVA
f2 = f2.replaceAll("x", "/");https://stackoverflow.com/questions/5914660
复制相似问题