Mam następujący funkcja JS wyzwalany za pomocą przycisku:JavaScript: Błąd ajaxSubmit
function uploadPicture() {
$("form#pictureUpload").ajaxSubmit({
data: $("form#pictureform").serialize(),
type: 'post',
url: '?action=loadpicture',
success: function(response) {
$('#div-pictures').html(response);
}
});
}
To działało perfekcyjnie przez kilka miesięcy. Ale przestało działać dzisiaj w Firefoksie, Safari, Chrome i Operze - chociaż nadal działa poprawnie w Internet Explorerze.
Safari daje mi następujący tajemniczy błąd:
Failed to load resource: cancelled ?action=loadpicture
Chrome wysyła prawie taki sam (bez : cancelled
). Opera i Firefox nie wykazują żadnego błędu. Jedyną dodatkową informacją jest to, że powyższe błędy występują po zakończeniu przesyłania pliku i mimo że serwer generuje dane wyjściowe HTML jako informację zwrotną, która jest ignorowana przez przeglądarki.
Proszę dać mi znać, jeśli masz pomysł, jak to naprawić. Pracuję w kółko od wielu godzin, nawet nie zbliżając się do rozwiązania - po prostu nie widzę błędów w kodzie ani w plikach dziennika. Wielkie dzięki!
Nie znam odpowiedzi, ale kilka pomysłów do zbadania: -Nie myślę, że prawidłowe jest podawanie? Parm = value podczas wykonywania żądania POST. Zwykle, gdy wykonujesz żądanie GET, wszystkie parametry, które podajesz, są w ten sposób dołączane do adresu URL; kiedy POST, wartości są przekazywane jak dane formularza. Spróbuj użyć ukrytego wejścia. Mogę się mylić z tym, być może jest to dozwolone, nawet jeśli nie jest to normalne użycie. - Wygląda na to, że powracasz na tę samą stronę, na której zdefiniowano ten kod, nie wiesz, czy to jest prawidłowe zachowanie czy nie? - Czy używasz innej wersji jQuery niż poprzednio? – RMorrisey
Żadna wersja jQuery nie jest taka sama. Jedyną różnicą, o której wiem, była niewielka aktualizacja Apache i mod-php. – MrG
Czy "? Action = loadpicture" działa tak jak wcześniej? Czy próbowałeś synchronicznie wywoływać ten adres URL? – dmitko