形式提交 - IE访问被拒绝 - 同一个域中(form submit - IE access de

2019-06-24 14:39发布

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是在同一个域。

<iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;display:none;"></iframe>
<form name="upload_icon" action="upload_icon.php" method="post" enctype="multipart/form-data" target="upload_target">

提交输入没有帮助

我不明白它的Cuz,如果我尝试发送另一种形式的工作正常

Answer 1:

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

更多详细的https://github.com/valums/file-uploader/issues/118#issuecomment-1387612

您可以尝试造型输入类型的文件,虽然http://www.quirksmode.org/dom/inputfile.html



Answer 2:

我有类似的HTML和jQuery代码,并遇到了同样的问题(即“访问被拒绝。” JavaScript错误在Internet Explorer),我设法采取指针来解决这个 (伟大的)答案。

在您的实例:

  1. 在#icon_upl更改<button> / <input><label> ,并通过设置使用的标签的辅助功能for它的属性指向你的<input name="icon" type="file">元素。

    这将有效地使你的click()事件处理程序冗余。 但是,单击<label>在Firefox似乎没有触发文件<input>对话框,所以你需要执行浏览器测试,并仍然有click()事件处理程序,如果浏览器,基于Mozilla的。

  2. 为了为它工作,你需要确保你的文件<input>不是通过设置它的位置是绝对的,移动它关闭屏幕隐藏。



Answer 3:

我已经找到了其他的方式来做到这一点...我已经做试验,我发现它后2或3点击提交按钮的工作。

我有尝试一些解决方案,但发现这个由我自己。 这仅仅是针对IE。

注意:我不使用jQuery的提交方法,因为它们处理错误。

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

PS。 对不起,我的英语不好,这不是我的第一语言。



Answer 4:

您可以直接事件触发的隐藏输入字段,因为你不能抓住它。 它可以与它结合事件,并通过另一个触发它。

例如:

// 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'
});

注:但它不是从您的文章清楚,如果你已经是这样还是不行。



Answer 5:

这似乎是不可能的

  1. 因为它拥有的文件名,您无法读取元素的“价值”。
  2. 你不能火起来通过JS文件选择菜单。
  3. 你可以不火提交通过JS文件上传控制的。

从获得访问被拒绝IE8的错误



文章来源: form submit - IE access denied - same domain