2013-01-08 52 views
5

मुझे पता है कि यह थोड़ा विरोधाभासी है क्योंकि XMLHttpRequest को पृष्ठ को फिर से लोड नहीं किया जाना चाहिए, और यह इसका पूरा बिंदु है।XMLHttpRequest कॉल के बाद स्वचालित पृष्ठ रीलोड से कैसे बचें?

क्रोम नवीनतम संस्करण, आईफोन पर सफारी और एंड्रॉइड पर कोशिश की। एक ही परिणाम।

मैं फ़ाइलों के साथ, इसके माध्यम से एक फॉर्म भेज रहा हूं। महान काम करता है, गंतव्य साइट सही ढंग से डेटा प्राप्त करती है, और इसे प्रदर्शित करती है। 200, "ठीक" वापस भेजता है। (यह फेसबुक है)

लेकिन फिर मेरा पृष्ठ स्वचालित रूप से पुनः लोड हो जाता है। जैसे कि मैंने HTML फॉर्म और सबमिट बटन का उपयोग करके फ़ॉर्म सबमिट किया है। (जो अपने मूल समस्या थी)

यहाँ, कैसे मैं यह कर रहा है जावास्क्रिप्ट

// Get the form element 
var formData = new FormData(document.getElementById("photosubmitform")); 

var xhr = new XMLHttpRequest(); 
xhr.open('POST', 'https://graph.facebook.com/' + facebookWallId + '/photos', false); 
xhr.onload = function(event) 
{ 
    var json = xhr.responseText; // Response, yay! 
} 
xhr.send(formData); // Sending it, will reload the page on success... 

उत्तर

12

किसी भी मौका आप एक फार्म जमा करके इस ट्रिगर कर रहे हैं से? यदि आप ऑनसबमिट हैंडलर में return false नहीं हैं, तो फॉर्म अभी भी सबमिट किया जाएगा।

+1

यह काम करता है! इसे

टैग में जोड़ा गया है: धन्यवाद! – daivuk

+0

मुझे नहीं पता था कि यह फ़ॉर्म एक एक्सएचआर के माध्यम से भेजकर ट्रिगर हो जाएगा। – daivuk

+0

बढ़िया! इसके लिए धन्यवाद, मेरा दिन बना दिया। – Benvorth

3

बटन को देखकर event.preventDefault() का उपयोग करें जब आपके फॉर्म में क्लिक करें।