पर मेरे पास एक साइट है जिसे मैं उपयोगकर्ता नाम/पासवर्ड दर्ज करता हूं और लॉगिन बटन पर क्लिक करता हूं। लॉगिन बटन एक XMLHttpRequest ऑब्जेक्ट बनाता है, और इसे बंद कर देता है।पहला XMLHttpRequest विफल रहता है लेकिन केवल IE9
क्रोम, फ़ायरफ़ॉक्स, ओपेरा, सफारी, एंड्रॉइड डिवाइस, आईओएस डिवाइस पर यह ठीक काम करता है। आईई 9 तब तक काम करेगा जब तक मैं एक HTTP पते पर हूं और HTTPS का उपयोग नहीं कर रहा हूं।
HTTPS पर, IE9 प्रकार कार्य करता है:
पहले लॉगिन अनुरोध कुछ भी रिटर्न वापस कभी नहीं। एफ 12 स्क्रीन नेटवर्क टैब में मेरा लॉगिन अनुरोध दिखाती है और सभी सही दिखते हैं। स्क्रिप्टिंग टैब कभी भी त्रुटि नहीं फेंकता है। बस कुछ भी नहीं होता है।
यहां पागल हिस्सा है: - यदि मैं दूसरी बार लॉगिन पर क्लिक करता हूं, तो यह वास्तव में काम करता है। - यदि मैं ब्राउज़र पर रीफ्रेश क्लिक करता हूं, और फिर लॉगिन करता हूं, तो यह भी काम करेगा!
मैं इस प्रकार अनुरोध करने वाले कर रहा हूँ:
var x = new XMLHttpRequest();
x.open("POST", "/Relative/URL/Path", true);
x.setRequestHeader("Content-Type", "text/plain");
x.onreadystatechange = function() {
if ((x.readyState == 4) && (x.status == 200)) {
// handle callback
}
}
x.send(my request);
जब यह विफल रहता है, डिबगर onreadystatechange कोड में x.send() लाइन से जाना जाएगा। तैयार चरण 1 होगा। यह अंतिम होगा जो मैं डीबग कर सकता हूं क्योंकि कुछ और नहीं होता है।
किसी भी विचार की अत्यधिक सराहना की जाएगी।
[संपादित करें]: मैंने यह देखने के लिए एक अनुरोध किया कि क्या होगा। Onreadystatechange घटना को फिर से तैयार = 4 और स्थिति = 12152 के साथ निकाल दिया गया। आईई 9 की एफ 12 स्क्रीन में नेटवर्क व्यू परिणाम को निरस्त और 1589.07 के रूप में लिया गया परिणाम दिखाता है। एक Google खोज से पता चलता है कि सर्वर पर कनेक्शन बंद था।
[संपादित करें 2]: नीचे दी गई टिप्पणी के आधार पर मैंने jQuery के AJAX() विधि का उपयोग करने के लिए इस कोड को redid। मैंने सोचा कि यह मेरे हिस्से पर खराब कोड को खत्म करने का मौका हो सकता है। ऐसा भाग्य नहीं। वही व्यवहार होता है।
$.ajax({
"url": sUrl,
"success": function (data, textStatus, x) {
workerCallback(data, id, "");
},
"error": function (x, testStatus, errorThrown) {
workerCallback("nc", id, errorThrown);
},
"contentType": "text/plain",
"data": JSON.stringify(req),
"dataType": "json",
"timeout": 1600000,
"type": "POST"
});
[अंतिम अपडेट:] मैंने कोड अपडेट किया है। यदि कोई टाइमआउट होता है, तो मैं केवल उसी अनुरोध को दोबारा दोहराता हूं - केवल एक बार। काफी हैक लेकिन यह काम करता है। जब तक कोई भी समाधान नहीं ढूंढ लेता है, तब तक मैं कुछ उपयोगी विचारों के बीच बक्षीस को विभाजित करूंगा जो लोग नीचे थे।
कैश साफ़ है? क्या आप फिडलर जैसे कुछ भी इस्तेमाल करते हैं यह देखने के लिए कि क्या अनुरोध बाहर निकले हैं? – epascarello
कैश साफ़ है। अनुरोधों की निगरानी पर महान सुझाव। मैंने वायरशर्क (नेटवर्क स्निफ़ेर) खोला और चेक किया। जब मैं पहली बार लॉगिन करता हूं तो मैं कुछ भी नहीं देख सकता। दूसरी बार मैं अनुरोध देखता हूं! लेकिन आईई का कहना है कि यह अनुरोध किया ?! – Paul
त्रुटि कोड देखें: http://support.microsoft.com/kb/193625 – epascarello