【发布时间】:2011-08-20 08:32:54
【问题描述】:
我有一个 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
此 sn-p 有效,提交表单并带上 PDF 文档,可用于:
- Firefox 3.x-4.x(未在 2.x 上测试)
- Internet Explorer 6-8
- Google Chrome 9.x-11.x(其他版本未测试)
- Opera 10.x-11.x(其他版本未测试)
但我也需要它在 Internet Explorer 9 中工作。目前,当我在 IE9 中提交相同的信息时,我收到以下消息:
而不是这样的:
IE9 不会转义 / 并将它们作为 URI 上路径分隔符的一部分。
问题是:我怎样才能让我的 URI 片段也能在 IE9 中正确生成?
提前致谢。
【问题讨论】:
-
发送的 HTTP 标头是什么?
标签: javascript cross-browser escaping uri internet-explorer-9