IE 8-9 SCRIPT5:Zugriff verweigert(访问被拒绝)提交

时间:2013-09-04 15:18:57

标签: javascript jquery jquery-forms-plugin

我的页面中有一个来自其他子域的iframe。 在这个iframe我有一个表格

<div id="main"></div>
<form id="fileForm" method="POST" action="https://othersub.samedomain.de/upload" enctype="multipart/form-data">
    <input name="filename" type="file" id="filename"><br>
    <input name="action" type="hidden" value="fileupload">
    <a href="#" id="file-upload">upload</a>
</form>

在我的JS中我有这个:

$(document).ready(function() {

$("#file-upload").click(function(event){
    event.preventDefault();     
    console.log("CLICK EVENT");
    $("#fileForm").submit();
});

$("#fileForm").ajaxForm({
    'target': '#main',
    'dataType':  'json',
    'type': 'POST',
    'url': 'https://othersub.samedomain.de/upload',
    beforeSubmit: function(){
        /* show loading */      
    },
    success: function(response, statusText, xhr, $form) {               
        /* do */
    },
    error: function(response, statusText, xhr, $form) {
        /* do */
    }
});

});

所以我点击我的上传按钮,我在IE中成为一个错误的错误: (访问被拒绝)SCRIPT5

这是代码的这一行(554):

submitFn.apply(form);

或更多:

try {
form.submit();
} catch(err) {
// just in case form has element with name/id of 'submit'
var submitFn = document.createElement('form').submit;
submitFn.apply(form);
}

当他必须使用iframe上传时,会发生在旧IE​​中。 我希望你能帮忙。

最好的问候

1 个答案:

答案 0 :(得分:0)

输入文件有一个大问题,在IE上需要点击这个元素,如果你用一个javascript来模拟这个点击,你提交后就会出现一个错误。试试这个,将输入文件与alpha 0和过滤器0放在假按钮上以选择文件

样本

START HTML--------------------------------
 < form ... >
   < input type="file" id="ID_INPUTFILE" ....>
   < a href="#" id="FAKE_BUTTON"> CHOSE YOU FILE < /a>
   ...
 < /form >
< /html>
END HTML----------------------------------

START CSS--------------------------------- < style> form { position:relative; } #FAKE_BUTTON { width: 200px; height: 30px; left: 10px; top: 10px; z-index:2; } #ID_INPUTFILE { position: absolute; width: 200px; /*WIDTH_OF_FAKE_BUTTON*/ height: 30px; /*HEIGHT_OF_FAKE_BUTTON*/ left: 10px; /*LEFT_POSITION_OF_FAKE_BUTTON */ top: 10px; /*TOP_POSITION_OF_FAKE_BUTTON */ z-index: 3; /*ALWAY OVER FAKE BUTTON */ opacity: 0.0; /*TO PUT INVISIBLE */ filter: alpha(opacity=0); /*TO PUT INVISIBLE fix ie */ } < /style> END CSS-----------------------------------