यह मेरे आईई 8 उपयोगकर्ताओं के बीच कुछ दुःख पैदा कर रहा है।IE8 को कुछ फ़ाइल डाउनलोड को अवरुद्ध करने का कारण क्या है?
मेरी साइट पर मेरे पास php स्क्रिप्ट (file_download.php? File = X123) के माध्यम से फ़ाइल डाउनलोड लॉन्च किया गया है। इस पृष्ठ में यह डेटाबेस में कुछ डेटा रिकॉर्ड करता है, फिर डाउनलोड को मजबूर करने के लिए हेडर का उपयोग करता है। इस पृष्ठ पर सब कुछ सभी ब्राउज़रों पर ठीक काम करता प्रतीत होता है।
यह मैं इस पृष्ठ को कैसे कहता हूं जो मुझे परेशान करने वाला छोटा लगता है "आपकी सुरक्षा की सुरक्षा में मदद के लिए - इंटरनेट एक्सप्लोरर ने साइट को आपके कंप्यूटर पर फ़ाइलों को डाउनलोड करने से अवरुद्ध कर दिया है"।
यदि मैं एक नियमित href टैग <a href="/file_download.php?file=X123">download</a>
का उपयोग करता हूं तो यह सही ढंग से लॉन्च होता है (बिना आईई अवरुद्ध डाउनलोड संदेश के साथ)।
लेकिन जब मैं एक jQuery स्क्रिप्ट का उपयोग शुरू करता हूं तो यह मुझे यह चेतावनी देता है।
तो मुझे लगा कि आईई 8 जावास्क्रिप्ट रीडायरेक्ट्स पर संदिग्ध हो सकता है, इसलिए मैंने स्थानीय पेज पर एक साधारण जेएस फ़ंक्शन बनाया, लेकिन इससे कोई समस्या नहीं हुई।
तो ऐसा लगता है कि jQuery अपराधी हो सकता है ... ऐसा इसलिए है क्योंकि window.location ईवेंट को किसी अन्य पृष्ठ या स्क्रिप्ट स्रोत से बुलाया जाता है? क्या कोई जानता है कि यह कैसे काम करता है?
मैं परीक्षण जारी रखूंगा लेकिन अभी के लिए, क्या कोई इस मुद्दे पर कुछ प्रकाश डाल सकता है? उपयोगकर्ताओं को उनकी आईई सेटिंग्स को ट्विक करने के लिए कहना एक विकल्प नहीं है।
धन्यवाद
-------- jQuery कोड --------------
jQuery("a").click(function(e){
if(jQuery(this).attr("href") !== undefined){
downloadLink = jQuery(this).attr("href");
thingClicked = jQuery(this);
dll_io = downloadLink.indexOf("/file_download.php?file_id=");
dll_io2 = downloadLink.indexOf("/file_download_safe.php?file_id=");
if(dll_io == 0 || dll_io2 == 0){
e.preventDefault();
jQuery.getScript("/includes/get_login.php?file_id=" + downloadLink + "&dll_io=" + dll_io + "&dll_io2=" + dll_io2 + "&last_url=" + document.URL, function(rp){
//get_login.php sets 'requested_dl_id' cookie
if(dll_io2 == 0){
window.location = downloadLink;
}else{
if(rp == "allow"){
window.location = downloadLink;
}else{
jQuery("#download_prompt").click();
}
}//end condition: if file_download_safe -> set cookie and send to page. IF file_download -> set cookie and decide to prompt or not.
});
}//end if fd == file_download.php
}//end only execute code if 'a' has a defined 'href' attribute
});
---- अद्यतन ----
अब मैंने इस समस्या के कारण को समझने के लिए पर्याप्त शिक्षित किया है - लेकिन कोई आसान समाधान नहीं है। कारण IE7 & 8 गैर-उपयोगकर्ता ईवेंट से लॉन्च किए गए डाउनलोड को स्वचालित रूप से अवरुद्ध करता है। तो एक ऑनक्लिक घटना एक डाउनलोड लॉन्च करेगी, लेकिन एक jQuery स्क्रिप्ट नहीं। अभी भी एक कामकाज की खोज।
+1 के स्थान पर कोशिश
है ... – jeroen
आप संदिग्ध कोड पोस्ट कर सकते हैं? –
क्या आप अपने डोमेन पर होस्ट की गई jQuery की एक प्रति लोड कर रहे हैं, या आप इसे किसी भिन्न डोमेन (जैसे सीडीएन) से खींच रहे हैं? –