我在执行ajax callM时遇到了IE和FF的奇怪行为; Chrome按预期工作;)
在Grails中,我使用<g:formRemote/>
标签,结果如下:
<form onsubmit="jQuery.ajax({type:'POST',
data:jQuery(this).serialize(),
url:'/url/morUrl',
success:function(data,textStatus){},
error:function(XMLHttpRequest,textStatus,errorThrown){}
complete:function(XMLHttpRequest,textStatus){performAction(XMLHttpRequest)}
});return false"
method="POST"
action="/url/morUrl"
name="tmpForm"
asynchronous="false"
id="tmpForm">`
在所有测试的浏览器中,ajac调用完成并且到达了complete:function(XMLHttpRequest,textStatus){performAction(XMLHttpRequest)}
回调,该回调也表现良好。
在那之后,只有FF和IE做了一些奇怪的事情,只用一个简单的“false”作为内容跳过整个DOM Modell。
我发现,附加到Ajax Call return false
的{{1}}是导致此行为的原因。
<form onsubmit="jQuery.ajax({ ... ... });**return false**"
出现在我的所有ajax调用中,但只有在这里才会导致这个freekin结果.ajax调用返回一些带有一些新HTML的JSON,其中用于替换{{}中的div层。 1}}回调。
任何想法为什么IE和FF都在做这件奇怪的事情?
有没有人有类似的问题?和/或工作解决方案?
问候,
亚历
答案 0 :(得分:0)
事实证明,提交表单的链接实际上是使用href=javascript:tmpForm.onsubmit();
表示法。
IE和FF接受字符串“javascript:tmpForm.onsubmit();”作为新文档URl并验证它(将结果作为新内容发布),而Chrome刚刚执行了JS ....
似乎是我的失败;)