Nicht gefangener TypeError: $ .post ist keine Funktion

73

Ich erhalte diesen Fehler in der Konsole:

Nicht gefangener TypeError: $ .post ist keine Funktion

für diesen Code:

<script type="text/javascript">
    $('#cl_submit').click(function() { //#cl_submit is a button
        $('#cl_stage1msg').html('Processing...');
        $.post("process/cookie.php", $("#cl").serialize(), function(response) { //#cl is a form
            $('#cl_stage1msg').html(response);
        });
        return false;
    });
</script> <!-- popup included -->

Ich konnte einfach nichts falsches daran finden. Warum funktioniert das nicht, irgendwelche Hinweise?

Funktioniert jedoch $('#cl_stage1msg').html('Processing...');gut.

Es scheint, als würde nur die Post-Funktion nicht erkannt.

Ich verwende https://code.jquery.com/jquery-3.1.0.slim.min.js

Donnie Ashok
quelle
Bitte fügen Sie ein minimal reproduzierbares Beispiel bei , wobei der Schwerpunkt auf Vollständig liegt .
zzzzBov
Überprüfen Sie Ihre Skript-Tags. Haben Sie einen konsistenten Satz von jQuery-Bibliotheken enthalten (möglicherweise einen Versions- oder Bereichskonflikt)? Könnten Sie das Problem isolieren, idealerweise als jsfiddle?
Cee McSharpface
Welche Version von jQuery schließen Sie ein?
yuriy636
Die Frage impliziert, dass dies nur in Chrome geschieht und der Code in anderen Browsern funktioniert. Das ist unwahrscheinlich, aber Sie sollten klarstellen (und nicht speziell über Chrome sprechen, wenn es sich nicht speziell um ein Chrome-Problem handelt)
JJJ

Antworten:

185

Sie verwenden die schlanke Version von jQuery, die die Ajax-Methoden (in Ihrem Fall $.post()) nicht enthält.

Verwenden Sie den nicht schlanken Build , der hier unter http://jquery.com/download/ verfügbar ist , z.

https://code.jquery.com/jquery-3.5.1.min.js


Aus dem Release-Beitrag von jQuery 3.0 :

Schmales Gebäude

[...] Manchmal benötigen Sie kein Ajax oder bevorzugen eine der vielen eigenständigen Bibliotheken, die sich auf Ajax-Anforderungen konzentrieren. [...] Zusammen mit der regulären Version von jQuery, die die Module Ajax und Effekte enthält, Wir veröffentlichen eine [...] "schlanke" Version, die Ajax, Effekte und derzeit veralteten Code ausschließt.

yuriy636
quelle
5
Ich danke dir sehr. Das war das Problem. Vielen Dank für Ihre Zeit.
Donnie Ashok
1
Danke vielmals! Ich hatte naiv Anweisungen für bootstrap4 kopiert, ohne mich zu fragen, worum es ging slim.
Nicoleolias
Wie erwartet die "schlanke" Version von jQuery, dass wir API-Aufrufe aufrufen?
Asfand Qazi
1
@AsfandQazi mit integrierten APIs wie Fetch oder XMLHttpRequest , mit denen jQuery $.ajaximplementiert wurde; oder Sie können auch eine Bibliothek verwenden, die sich auf AJAX konzentriert, wie axios
yuriy636
2

Wenn Sie die jquery slim-Version verwenden, tritt dieses Problem auf. Verwenden Sie eine minimierte oder unkomprimierte Version der jquery js-Datei

Ahadul Islam
quelle