Używam tego skryptu do przesyłania plików graficznych: http://jsfiddle.net/eHmSr/
$('.uploader input:file').on('change', function() {
$this = $(this);
$('.alert').remove();
$.each($this[0].files, function(key, file) {
$('.files').append('<li>' + file.name + '</li>');
data = new FormData();
data.append(file.name, file);
$.ajax({
url: $('.uploader').attr('action'),
type: 'POST',
dataType: 'json',
data: data
});
});
});
Ale kiedy kliknę przycisk przesyłania, konsola JavaScript zwraca ten błąd:
Uncaught TypeError: Illegal invocation
Możesz mi pomóc?
dataType: 'json',
???processData: false
, co zasugerował Blender , a takżecontentType: false
, co zasugerował Caio Tarifa . Cokolwiek mniej niż wszystkie trzy nie działało. Zobacz [tę odpowiedź] ( stackoverflow.com/a/3Odpowiedzi:
jQuery przetwarza
data
atrybut i konwertuje wartości na ciągi.Dodanie
processData: false
do obiektu opcji naprawia błąd, ale nie jestem pewien, czy rozwiązuje problem.Demo: http://jsfiddle.net/eHmSr/1/
źródło
contentType: false
. Dzięki jeszcze raz!c
, a nie dwa.Miałem ten sam problem
Naprawiłem to, używając dwóch opcji
contentType: false processData: false
Właściwie dodałem te dwa polecenia do mojej funkcji $ .ajax ({})
źródło
Dodanie
processData: false
do$.ajax
opcji rozwiąże ten problem.źródło
Moje doświadczenie:
var text = $('#myInputField'); var myObj = {title: 'Some title', content: text}; $.post(myUrl, myObj, callback);
Problem polega na tym, że zapomniałem dodać .val () na końcu $ ('# myInputField'); ta czynność sprawia, że tracę czas na próbę ustalenia , co było nie tak, powodując błąd Illegal Invocation , ponieważ $ ('# myInputField') znajdował się w innym pliku niż ten system wskazał nieprawidłowy kod. Mam nadzieję, że ta odpowiedź pomoże innym popełniającym ten sam błąd, aby nie tracić czasu.
źródło
W moim przypadku wystąpił błąd, lista parametrów nie była dobrze sformułowana. Dlatego upewnij się, że parametry są dobrze sformułowane. Np. Poprawny format parametrów
data: {'reporter': reporter,'partner': partner,'product': product}
źródło