Tôi có biểu mẫu HTML (upload.htm) với một điều khiển tải lên tệp HTML bên trong.truy cập bị từ chối lỗi trên IE8
<form id="frmupload" name="upload" enctype="multipart/form-data" action="uploadhandler.ashx" method="post">
<input id="uploader" name="uploadctrl" type="file"/>
</form>
Ngoài ra còn có một phương thức JavaScript trong trang trên mà đi như thế:
function performUpload(){
document.getElementById('frmupload').submit();
}
tôi gọi bên này của một trang (uploadpage.htm) từ bên trong một iframe
:
<iframe id="docframe" src="upload.htm" style="display:none"></iframe>
Tôi cố gắng thực hiện tuyên bố được hiển thị bên dưới từ uploadpage.htm Trang:
var i = document.getElementById('docframe');
i.contentWindow.performUpload();
tôi nhận được một lỗi nói Truy cập bị từ chối, và gỡ lỗi của tôi dừng ở hàm JavaScript đầu tiên tôi đã thể hiện. Cả hai tệp đều nằm trong cùng một vị trí trong dự án web. Họ cũng có cùng tên miền. Tại sao tôi nhận được lỗi này?
Tất nhiên, trước đó, tôi có thể đăng trang: khi tôi không đặt thuộc tính name
cho điều khiển tải lên HTML. Nhưng sau khi tôi đặt thuộc tính name trong đánh dấu HTML, tôi nhận được lỗi lạ này. Tại sao tôi không nhận được điều này lần đầu tiên?
Đã xem @ bài đăng này ->"Access is denied" when script tries to access iframe in IE8, nhưng nó không giúp ích gì.
Phải xác nhận lại câu trả lời này. Tôi đã điên cuồng tìm kiếm một vấn đề với hình thức tải lên của tôi, trong thực tế, tôi đã sử dụng đầu vào tập tin tùy chỉnh trong IE và điều này đã gây ra sự truy cập bị từ chối vấn đề. Cái nhìn sâu sắc, thx –
Tôi đang thiếu gì? Fiddle này dường như chứng minh câu trả lời này sai; bằng cách sử dụng Ender/Bean thay vì jQuery Tôi đã có IE9 mở bộ chọn tệp và gửi biểu mẫu tới iframe được tạo thông qua JS và nó dường như hoạt động: http://jsfiddle.net/NkycS/27/ – RwwL
Aha, tôi nhận nó - đầu vào tệp của tôi không có thuộc tính tên trên đó. Ngay sau khi tôi thêm một, tôi nhận được lỗi truy cập bị từ chối: http://jsfiddle.net/NkycS/32/ – RwwL