MySQLデータベースからデータを返すシンプルなAJAXリクエストを作成しようとしています。これが私の機能です。
function AJAXrequest(url, postedData, callback) {
$.ajax() ({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
}
...そしてここで私はそれを呼ぶところで、必須パラメータを解析します。
AJAXrequest('voting.ajax.php', imageData, function(data) {
console.log("success!");
});
それでも、成功コールバックは実行されず( "success!"はコンソールに記録されないため)、コンソールにエラーが表示されます。
TypeError: $.ajax(...) is not a function.
success: callback
これは何を意味するのでしょうか? successイベントが$ .ajax内で無名関数を起動する前にAJAXリクエストを実行しましたが、今度は別の名前付き関数(この場合はコールバック)を実行しようとしています。これについてはどうすればいいですか。
ここの答えのどちらも私を助けませんでした。問題は次のとおりです。私はjQueryのスリムビルドを使用していましたが、いくつかのものは削除されましたが、ajaxはその1つです。
解決策:通常の(圧縮されているかどうかにかかわらず)jQueryのバージョン をここからダウンロードし 、プロジェクトに含めてください。
完全版のjqueryを使用していて、スリム版を使用していないかどうかを再確認してください。
私はjqueryに付属のjquery cdn-scriptリンクを使用していました。問題は、これがデフォルトでslim.jquery.jsであり、その中にajax
関数がないことです。ですから、(Bootstrap Webサイトからコピー&ペーストした)スリムバージョンのjqueryスクリプトリンクを使用している場合は、代わりにフルバージョンを使用してください。
つまり、<script src="https://code.jquery.com/jquery-3.1.1.min.js">
の代わりに<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"
を使用するということです。
よくわかりませんが、コードに構文エラーがあるようです。試してください:
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
$.ajax
の隣には不要な大括弧がありました。それでもエラーが発生する場合は、jQueryスクリプトファイルはロードされていません。
非推奨通知:jqXHR.success()、jqXHR.error()、およびjqXHR.complete()のコールバックは、jQuery 3.0以降で削除されています。代わりにjqXHR.done()、jqXHR.fail()、およびjqXHR.always()を使用できます。
AJAX関数にエラーがあります。角カッコが多すぎます。代わりに$.ajax({
をお試しください
あなたはajax関数と引数リストを定義するための括弧の別のセットの後に括弧を置いたので構文エラーがあります -
あなたが書いたように: -
$.ajax() ({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
Ajaxを囲む括弧は削除する必要があります。
$.ajax({
type: 'POST',
url: url,
data: postedData,
dataType: 'json',
success: callback
});
私は同じ質問に遭遇し、私の解決策は、JQueryスクリプトを追加することでした。
特に、FirefoxをFirefoxの下でデバッグするときには、対応するJQueryがロードされていることを確認する必要があります。
nodejsでこれを実行しようとしている人のために:jqueryはブラウザ(または同様のもの)を必要とするので、箱から出してはうまくいきません!私はただインポートを実行させようとしていて、[Function]
を書いたconsole.log($)
とそれからundefined
を返したconsole.log($.ajax)
をロギングしていました。私はtsc
エラーがなく、intellijからのオートコンプリートがあったので、何が起こっているのか疑問に思いました。
それからある時点で私はnode
がTypeScriptではなく問題であるかもしれないことに気づきました。私はブラウザで同じコードを試してみました、そしてそれはうまくいきました。うまくいくためには、実行する必要があります。
require("jsdom").env("", function(err, window) {
if (err) {
console.error(err);
return;
}
var $ = require("jquery")(window);
});
Ajaxを含むjquery minバージョンを参照します。
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>