2013-01-08 6 views
5

So che questo è un po 'paradossale perché XMLHttpRequest non dovrebbe ricaricare la pagina, ed è l'intero punto di esso.Come evitare il ricaricamento automatico della pagina dopo la chiamata XMLHttpRequest?

Provato in Chrome ultima versione, Safari su iOS e su Android. Tutto lo stesso risultato.

Sto inviando un modulo attraverso di esso, con i file. Funziona alla grande, il sito di destinazione riceve correttamente i dati e li visualizza. Invia un 200, "OK". (È facebook)

Ma poi la mia pagina si ricarica automaticamente. Proprio come se avessi inviato il modulo utilizzando il modulo HTML e un pulsante di invio. (Che era il mio problema originale)

Ecco come lo faccio, da JavaScript

// 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... 

risposta

12

Qualche possibilità si sta innescando questo inviando un modulo? Se non si specifica return false nel gestore onsubmit, il modulo verrà comunque inviato.

+1

Funziona! Aggiunto al tag

come questo: Grazie! – daivuk

+0

Non avevo idea che il modulo sarebbe stato attivato inviandolo tramite una xhr. – daivuk

+0

Ottimo! Grazie per questo, ha reso la mia giornata. – Benvorth

Problemi correlati