Czy mogę użyć następującego kodu jQuery, aby wykonać wysyłanie plików metodą POST w żądaniu ajaxowym?
$.ajax({
type: "POST",
timeout: 50000,
url: url,
data: dataString,
success: function (data) {
alert('success');
return false;
}
});
Jeśli jest to możliwe, to czy muszę wypełniać część data
? Czy jest to poprawny sposób? Ja tylko POSTuję plik do strony serwera.
Szukałem, ale to co znalazłem to plugin, a w moim planie nie chcę go używać. Przynajmniej na chwilę obecną.
Przesyłanie plików jest not możliwe poprzez ajax.
Możesz przesłać plik, bez odświeżania strony, używając IFrame.
Możesz sprawdzić więcej szczegółów tutaj.
UPDATE:
Z XHR2, upload plików poprzez AJAX jest wspierany. Np. poprzez obiekt FormData, ale niestety nie jest to obsługiwane przez wszystkie/starsze przeglądarki.
Wsparcie FormData zaczyna się od następujących wersji przeglądarek desktopowych. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+
Więcej szczegółów można znaleźć na stronie link MDN.
Ładowanie AJAX jest rzeczywiście możliwe przy użyciu XMLHttpRequest(). Nie są potrzebne żadne iframe. Postęp przesyłania może być pokazany.
Dla szczegółów zobacz: Odpowiedź https://stackoverflow.com/a/4943774/873282 na pytanie https://stackoverflow.com/questions/4856917/jquery-upload-progress-and-ajax-file-upload.
Więcej szczegółów w moim wpisie na blogu: http://blog.manki.in/2011/08/ajax-fie-upload.html.