在IE9中,同域的iframe出现SCRIPT5: Access is denied错误。

7
我正在尝试使用iframe(通过AJAX)提交带有附件的表单。我正在使用Rails和remotipart gem。事实上,我也尝试过jquery.form.js库,但没有成功。当我提交表单时,只有IE9显示“SCRIPT5:access denied”,而且当我从我的Gmail帐户重定向到该页面时。当我去到自己的网站并提交带有文件的表单时,它运行正常,但是从Gmail中的链接转到网站时却无法工作(对于其他电子邮件则可以)。我检查了它的工作原理 - 它创建隐藏的iframe设置form.target = iframe.name(iframe的名称)和iframe.src = javascript:false; 当表单被提交时,它会抛出异常=“SCRIPT5:access denied”。我曾尝试将iframe.domain设置为我的网站域名,但没有用 - iframe = $(“”); 顺便说一句,我将表单提交到相同的域名下。 有人解决了这个问题吗?

有人解决了这个问题吗?我也遇到了这个问题。 - Gautam Naroji
我没有 :( 如果你有解决方案,请在这里发布。 - Dzmitry
我降级了jquery-rails版本,然后它就可以工作了。 - Gautam Naroji
你现在使用的是哪个jquery-rails版本? - Dzmitry
我遇到了相同的错误,但实际上不是来自Gmail。但即使在我的网站上也会发生这种情况。同时使用remotipart和rails。@Dzmitry,你有进展吗? - index
这个问题已经在这里讨论过了,并提供了解决方案:https://dev59.com/w2Yr5IYBdhLWcg3wq8CI - Deepak Kumar Vasudevan
3个回答

1

我对jQuery一无所知,但这是一个常见的javascript错误。IE不允许通过脚本提交带有附件的表单。如果您将表单放在单独的文件中并将其加载到iframe中,则frame.form.submit()将起作用。


1
它允许提交带有文件的表单。这只是Gmail和IE9的问题。我的意思是,当您从Gmail链接进入表单时,它无法正常工作。如果您从Yahoo邮件进入表单,则可以正常工作。 - Dzmitry

0

我遇到了同样的问题。在示例中我使用的版本是一样的,示例可以正常运行,但是在我的应用中却无法使其工作。

我正在使用Backbone,我觉得这可能与动态创建表单有关,但不幸的是,我没有时间来调试具体的问题。

我转向了https://github.com/blueimp/jQuery-File-Upload,现在它可以正常工作了。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接