怎样能禁止 form 表单 get 方式提交的自动转义?

DearFen 2011-09-06 12:34:49
我现有一个 a.html 页面,body 内容如下

<form action="a.html" method="get">
<input name="a" type="text" value="asdf" /><br/>
<input name="b" type="text" value="?TNT_Flag=Y" /><br/>
<input name="" type="submit" value="提交" />
</form>


可是我提交表单后,的浏览器地址变为 ".../a.html?a=asdf&b=%3FTNT_Flag%3DY"
而我实际想要的是 ".../a.html?a=asdf&b=?TNT_Flag=Y"

业务需求是:现在有上百家网站提供自己公司服务的跟踪查询,而我们要做的就是将这上百家公司的查询整合到我们的网站上,方便用户的使用。
我现在做的业务就是 搜集各网站的查询方式和参数,模拟查询,然后直接弹出查询目标公司的查询结果页面,因每个公司的参数不一样,形式也不一样,提交方式也不全一样,而我要做成通用的,就把搜集到的数据在服务器端拼装成表单提交,如果是表单POST 提交,form 的 method 就为 POST ,如果是URL 传值,form 的 method 就为 get。
现在有一家比较重要的网站,它的提交方式为 URL 传参提交,其提交参数之一包含特殊字符("?","="),我用form get 提交后,URL 里特殊字符都被默认转为 UTF-8 的格式,即上面示例中的 “%3F”,“%3D”,这样,因为和别人公司网站要的参数不匹配,所以我就无法得到结果页,这要如何解决呢?
...全文
1032 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
DearFen 2011-09-09
  • 打赏
  • 举报
回复
还有没有人知道哇
DearFen 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 bill0605030109 的回复:]

这个跟浏览器有关吧,把浏览器源码改了应该可以。
[/Quote]
这位仁兄的招,太高了。做出来估计软件只有我们自己用了
  • 打赏
  • 举报
回复
这个跟浏览器有关吧,把浏览器源码改了应该可以。
DearFen 2011-09-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wangquanzheng 的回复:]

用异步提交试试
[/Quote]
异步提交,那不就是说用 AJAX 吗?如果这样,我怎样才能在新窗口装载响应过来的页面?
安心逍遥 2011-09-08
  • 打赏
  • 举报
回复
用异步提交试试
DearFen 2011-09-08
  • 打赏
  • 举报
回复
别沉了,顶起来
DearFen 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 applerockhool 的回复:]

用js 直接拼字符串,然后用js提交
[/Quote]
不到万不得已,我们是不采用这种方式的
applerockhool 2011-09-07
  • 打赏
  • 举报
回复
用js 直接拼字符串,然后用js提交
DearFen 2011-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yangting_lisa 的回复:]

特殊字符的处理。。。
[/Quote]
get 提交后,URL上的参数是表单自动拼接上去的,无法在这一步处理。

[Quote=引用 2 楼 beowulf2005 的回复:]

.........看到这种问题不知道怎么回答法。
典型的对网页及网站的基本概念混淆者。
[/Quote]
这位仁兄有点咬文嚼字啊。好吧,你来给我详细深入的解释一下网页和网站。

[Quote=引用 3 楼 softroad 的回复:]

你把参数在转回去么。
[/Quote]
不是转回去,目的不是要回到当前页面!主题内容中的表单仅是一个示例,我想让大家看的是 !我表单文本框里的值和最后URL上的值形式不一样!我最终是想在form get 提交后的URL地址上得到的参数是原模原样的 问号和等号,而不是经过转义的

[Quote=引用 4 楼 wangquanzheng 的回复:]

问题不明确,要把参数转回?还是

禁止用get提交,你直接写post就行了啊

为什么禁止啊,默认就是get啊
[/Quote]
不是转回去,目的不是要回到当前页面!主题内容中的表单仅是一个示例,我想让大家看的是 !我表单文本框里的值和最后URL上的值形式不一样!我最终是想在form get 提交后的URL地址上得到的参数是原模原样的 问号和等号,而不是经过转义的。我不是要禁止 get 提交,是要禁止 表单 get 提交时的自动转义。在URL地址上我要看到的是 问号和等号,不是 %3F 和 %3D

[Quote=引用 6 楼 cl61917380 的回复:]

为什么不用post方式
[/Quote]
这个问题,我已经在我的主题内容里描述的很明确了,并不是所有网站都使用 post 提交,有很多是使用 URL 传值,也就是说,我看到的是 他们的查询是通过 URL 传参的。为了把这么多网站的查询整合在我们网站上,也为了通用,我就把这两种方式的查询都拼装成了 form 表单,URL 传参的我就把 form 的 Method 配成 get。其中,有个重要的网站是使用 URL 传参的,它的参数值里包含特殊字符问号和等号,我这里组织成表单 get 提交后,里面的 问号和等号 被自动转义,这样,传递的参数就和别人网站上的参数不一样了,无法得到正确的结果页面
coooliang 2011-09-06
  • 打赏
  • 举报
回复
为什么不用post方式
li26338710 2011-09-06
  • 打赏
  • 举报
回复
呵呵!!
安心逍遥 2011-09-06
  • 打赏
  • 举报
回复
问题不明确,要把参数转回?还是

禁止用get提交,你直接写post就行了啊

为什么禁止啊,默认就是get啊
softroad 2011-09-06
  • 打赏
  • 举报
回复
你把参数在转回去么。
beowulf2005 2011-09-06
  • 打赏
  • 举报
回复
.........看到这种问题不知道怎么回答法。
典型的对网页及网站的基本概念混淆者。
小笨熊 2011-09-06
  • 打赏
  • 举报
回复
特殊字符的处理。。。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧