表单提交 – IE访问被拒绝 – 相同的域名

SCRIPT5: Access denied jquery.min.js, line 3 char 3769 

我只是在IE中通过简单的表单提交这个错误

  $("#icon_upl").click(function(){ //icon_upl is button which open dialog $("[name=icon]").click(); }); $("[name=icon]").change(function() { //icon is hidden file input $("[name=upload_icon]").submit(); }); 

我将该表单发送到位于同一域的隐藏iframe。

  

提交输入没有帮助

如果我尝试发送另一种工作正常的表格,我不会得到它

如果您通过JS触发选择文件对话框,那么在提交表单时您将收到拒绝访问错误。 IE不允许这样做。 您将不得不要求用户直接单击输入类型文件

更多细节请访问https://github.com/valums/file-uploader/issues/118#issuecomment-1387612

您可以尝试通过http://www.quirksmode.org/dom/inputfile.html设置输入类型文件的样式

我有类似的HTML和jQuery代码,遇到了同样的问题(即’访问被拒绝。’Internet Explorer中的JavaScript错误),我设法通过从这个 (伟大的)答案中指出来解决。

在你的实例中:

  1. 将#icon_upl / 更改为并通过将其上的for属性设置for指向元素来使用标记的辅助function。

    这有效地使您的click()事件处理程序变得多余。 但是,单击Firefox中的似乎不会触发文件对话框,因此如果浏览器是基于Mozilla的,则需要执行浏览器测试并仍然使用click()事件处理程序。

  2. 为了使其工作,您需要确保文件不会被隐藏,方法是将其位置设置为绝对位置并将其移出屏幕。

我找到了另一种方法来做这个…我已经进行了测试,我发现它在2或3次点击提交按钮后工作。

我尝试了一些解决方案但是我自己发现了这个问题。 这仅适用于ie。

请注意我不使用jquery提交方法,因为他们处理错误。

 function Submit() { try { $('#FormName')[0].submit(); } catch (e) { setTimeout(function () { Submit(); }, 50); } } 

PS。 抱歉我的英语不好,这不是我的第一语言。

您可以在隐藏的输入字段上触发直接事件,因为您无法捕获它。 可以将事件与它绑定并通过另一个触发它。

例如:

 // binding event to hidden field $('input[name=icon]:hidden').on('click', function() { alert('Hidden triggered'); }); // some button/ or else // some_target is any valid selector you can use $('some_target').on('click', function() { $('input[name=icon]:hidden').click(); // triggering click on hidden field will alert 'Hidden triggered' }); 

注意:但是从你的post中不清楚你是否已经有过这样的事情。

这似乎是不可能的

  1. 您无法读取元素的“值”,因为它包含文件名。
  2. 您无法通过JS启动文件选择菜单。
  3. 您无法通过JS触发文件上传器控件的提交。

来自IE8的访问被拒绝错误