Wiem, że jest to trochę paradoksalne, ponieważ XMLHttpRequest nie powinien przeładowywać strony, i to jest cały sens tego.Jak uniknąć automatycznego przeładowywania strony po wywołaniu XMLHttpRequest?
Wypróbowana w najnowszej wersji Chrome, Safari na iOS i na Androida. Wszystkie te same wyniki.
Wysyłam przez niego formularz z plikami. Działa świetnie, strona docelowa odbiera poprawnie dane i wyświetla je. Odsyła 200, "OK". (To jest facebook)
Ale wtedy moja strona ładuje się automatycznie. Podobnie jak w przypadku przesłania formularza za pomocą formularza HTML i przycisku przesyłania. (Który był mój pierwotny problem)
Oto jak to zrobić, z 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...
Działa! Dodano go do znacznika
Nie miałem pojęcia, że formularz zostanie wywołany przez wysłanie go przez xhr. – daivuk
Świetnie! Dziękuję za to, że zrobiłem mój dzień. – Benvorth