मेरे कोड है:मैं एक jQuery अजाक्स अनुरोध कैसे डीबग करूं?
var test = "it isn't working";
var response = $.ajax({
type: 'GET',
url: 'jquerydemo.php', //This is in the same site as the page calling this request, so it's not a same-domain error.
success: function(){
test = "it's working";
},
error: function(){
alert("Error detected");
}
}).responseText;
alert(test);
मैं स्थिति कोड का परीक्षण किया है और यह एक 200 और त्रुटि समारोह कभी नहीं बंद हो जाता है करने के लिए बाहर आया था, लेकिन न तो सफलता समारोह करता है। जैसे मैंने अपनी टिप्पणी में कहा, यह एक समान मूल नीति त्रुटि नहीं है। यह सिर्फ "यह काम नहीं कर रहा है" कहता रहता है। यहाँ क्या चल रहा है?
तुम भी जोड़ने 'async का विकल्प है: सेटिंग्स आप अपने' ajax' कॉल में पारित करने के लिए TRUE' है, लेकिन यह ध्यान रखें कि इस निष्पादन की है कि पूरे धागा रुक जाएगा अनुरोध तक वापस आने तक आपकी स्क्रिप्ट में। – dfreeman
@ स्चिफ गेलौफेन - मुझे लगता है कि आप 'async: false' का मतलब है। अजाक्स कॉल को एक सिंक्रोनस कॉल में बदलना वास्तव में एक विकल्प है, लेकिन क्योंकि यह अजाक्स कॉल की अवधि के लिए पूरे वेब पेज को लॉक करता है, यह शायद ही कभी सबसे अच्छा डिज़ाइन विकल्प है। यह 'async: true' के साथ कोड के लिए अधिक जटिल है, लेकिन एक बेहतर उपयोगकर्ता अनुभव देता है। – jfriend00
मेरे हिस्से पर मूर्ख, मूर्ख टाइपो। हां, 'async: false'। यह जरूरी नहीं है कि एक सिंक्रोनस AJAX अनुरोध पूरे पृष्ठ को लॉक करता है (कम से कम, ऐसी कई परिस्थितियां हैं जिनके अंतर्गत यह नहीं है), लेकिन निश्चित रूप से यह आपकी सफलता में प्रतिक्रिया पर निर्भर तर्क देने के लिए बेहतर अभ्यास माना जाता है वापस कॉल करें। – dfreeman