最近我开始调整我们的产品到IE兼容性。现在我在IE中面临一个奇怪的问题。
我的表单网址类似于此https://x.com/formurl/dynamicvalue
我的表单元素是
<form action="" method='post'>
...
</form>
dynamicvalue
保留的一些值(字母数字字符)
IE以外的所有其他浏览器都将操作发送到https://x.com/formurl/dynamicvalue
IE表单操作正在发送到https://x.com/formurl
我不知道为什么会发生这种情况,我可以替换document.URL来发布表单以解决问题。不过,我想知道IE删除dynamicvalue
我在IE-9中测试
请有人教我。
提前致谢。
答案 0 :(得分:0)
在阅读将action
设置为空字符串的表单的action
属性时,我也在Internet Explorer 11中发现了此错误。
<form action="" method="post"></form>
如果在javascript中读取form.action属性并且当前URL不包含尾部斜杠,则将删除URL的最后部分。即,如果位置为example.com/xxx/yyy
,form.action=="example.com/xxx
,则位置为example.com/xxx/yyy/
,form.action=="example.com/xxx/yyy/
。
但是,如果通过点击提交按钮发布表单,则会将其发布到正确的网址,即example.com/xxx/yyy
或example.com/xxx/yyy/
。
我通过使用jQuery的attr
函数来检查HTML中的action=""
,然后使用location.href
代替。
if($(form).attr('action') === '') return location.href else return $(form).attr('action')
(为什么会有人这样做?我正在拦截表单提交并使用ajax发送数据。为此,我需要知道表单要提交的位置)