次のコードが機能しない理由がわかりません。とりあえず、php関数 "alias_valid"はテスト目的で文字列を返すだけなので、ここにはphp関数を含めていません。アラートは空です。
$.post(SITE_ROOT + "includes/AbstractEvent.php",{
action:"alias_valid",
alias : alias},
function(v){
alert(v);
});
jQuery.post()を使用したリクエストがエラーコードを返す場合、サイレントに失敗します
.error()
エラーが発生していないか確認してください
構文:
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.post("example.php", function() {
alert("success");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
action
には引数はありません$.post
。代わりに、URLの最後に連結してみてください。
$.post(SITE_ROOT + "includes/AbstractEvent.php/alias_valid/",{
alias : alias},
function(v){
alert(v);
});
しかし、MVCフレームワークを使用していない限り、これが機能するとは思えません。または、クラス内の特定の関数を呼び出すある種の要求ルーティング。
私の推測では、変数の1つが未定義です。SITE_ROOT
とalias
が実際にコード内で定義されていることを確認します。また、でSITE_ROOT
終わるかどうかを確認してください/
。
これらすべてをテストする最良の方法は、コンソールを起動して(を押してF12)、どのようなエラーが発生するかを確認することです。何もない場合は、サーバーから空の応答を受け取っている可能性があります。
これがあなたの例に基づいた動作中のjsfiddleF12です(ここでも、を押してコンソールの出力にアクセスします)。