私は AJAX (または jQuery) の専門家ではありませんが、次のように ajax リクエストを送信すると、自分がしていたことはまだかなり簡単だと思いました。
$.ajax ( requestObj );
送信されません。誰かが助けてくれることを願っています。コンテキストを提供するために、「requestObj」を次のように設定しました。
//initialise a request object
var requestObj = {};
requestObj.response = 'ajax-response';
requestObj.type = 'POST';
requestObj.url = my_config['ajax-service-list'][service]['url'];
requestObj.data = $.extend ( requestObj.data , {
action: service,
other: parameters,
_ajax_nonce: my_config['ajax-service-list'][service]['nonce']
});
requestObj.global = false;
requestObj.timeout = 30000;
requestObj.success = function ( r ) {
alert ( "Success: " + r );
}
requestObj.error = function ( r ) {
console.log ("FAILURE WITH AJAX Call ( " + JSON.stringify (r) + ")");
}
おそらく説明が必要なことが 1 つあります。「my_config」への 2 つの参照は、Wordpress の wp_localize_script() 関数を使用して設定した Javascript 変数への参照です。基本的には、URL を見つける場所、使用する NONCE などに関するコンテキストを提供するだけです。URL と NONCE 情報が正しく機能していることをテストしたので、問題はありません。たとえば、2 つの参照が定義され、次の結果が得られた後に、行のブラウザー デバッガーにブレークポイントを設定します。
ajax 関数を呼び出すと、すぐに成功関数が実行され、値 0 が送信されます。PHP エラー ログを見ると、リクエストが送信されていないことがわかります。$.ajax(requestOb) が実際にリクエストを送信するのを妨げているものは何ですか?
アップデート:
マイケルの賢明なアドバイスのおかげで、私は実際に外出するように要求されていることに気付きましたが、ローカル環境で実行しているため、応答は非常に速く返ってきます. 今、これはWordpressの構成にもっと関係しているのではないかと疑っています. wp_ajax_[service_name] に接続しましたが、すぐに 0 が返されます。wordpress フォーラムでこの新しい情報を使用して、この質問を再質問します。