WPサイトで異なるAJAX呼び出しを設定しましたが、特定のAJAX呼び出しとFirefoxのみを除いてすべて正常に動作します。WordPress AjaxコールがFirefoxで動作しない
私はこの問題を再現するための詳細を以下に示します。それはログイン資格情報を含んでいますが、それはWPテストサイトであり、これらは偽の資格情報ですので、心配する必要はありません。ユーザーIDやパスワードなどの認証情報 "aweb01" とhttps://responsive.knowledgeplaces.com
ログインへ
移動します。
接続すると、異なるボタンが表示されます。これらはテスト目的のボタンです。
たとえば、「no lpId parameter」ボタンをクリックすると、エラーメッセージが表示されます。
これらのすべてのボタントリガーAJAXがサーバーを呼び出し、サーバーで何らかの検証が間違っていると警告メッセージが表示されます。
これらのボタンはすべて正常に動作し、Firefoxを含むすべてのブラウザで警告メッセージが表示されます。
ページの右上に「deconnexion」(ログアウト)という別のボタンがあります。
このボタンをクリックすると、サイトからログアウトします。
ボタンはChromeとIEでは正常に動作しますが、Firefoxでは正常に動作しません。
ここにその実装方法を示します。
まず、次のコードではJavaScriptファイルがあります:
$("a[href='/kps_logout']").on('click', function() {
// check href symbolic URL
jQuery.post(
WP_AJAX_URL,
{
'action': 'kps_logout',
'security': $("#kpcms-ajax-nonce").val()
}
);
// redirect and deactivate default navigation
window.location.href = $kps_Host + $kps_LoginPath;
return false;
});
は基本的に、私はシンボリック「/ kps_logout」URLを使用しており、このjQueryのコードは、このリンクを持つ任意のhrefにログアウト機能をマッピングします。サーバー上で
、私は私のWordPressの子テーマの「のfunctions.php」にこのコードを持っている:
add_action('wp_ajax_kps_logout', 'kps_logout');
add_action('wp_ajax_nopriv_kps_logout', 'kps_logout');
function kps_logout() {
// security check
check_ajax_referer('kpcms-ajax-nonce', 'security');
// logout user and die
wp_logout();
die();
}
はもう一度、ChromeとIEではなく、Firefoxの場合は完璧に動作します。
ネットワーク開発ツールを有効にすると、FirefoxとAJAXの呼び出しがFirefoxで実行されていないように聞こえますが、ChromeとIEではそれを見ることができます。
「no lpIdパラメータ」ボタンでは、すべてのブラウザでAJAX呼び出しが表示され、すべてのブラウザで正常に動作します。そして、まったく同じように実装されています。
私はFirefoxのキャッシュをクリアしましたが、それは役に立ちません。
これで私を助けることができれば、それは素晴らしいことでしょう!
'window.locationのようなもの。ページのナビゲーションが行われる前にAJAX呼び出しが実行されるようにするには、 'post'コールバックにhref = $ kps_Host + $ kps_LoginPath;を入れる必要があります。 – imtheman