2012-04-05 29 views
0

次のコードが機能しない理由がわかりません。しばらくの間、PHP関数 "alias_valid"はテスト目的の文字列を返すだけなので、ここにはPHP関数は含まれていません。アラートは空です。 jQuery.post()でリクエストがエラーコードを返した場合jQuery AJAXポストが機能しない

$.post(SITE_ROOT + "includes/AbstractEvent.php",{ 
    action:"alias_valid", 
    alias : alias}, 
    function(v){ 
     alert(v); 
    }); 
+2

PHPを含めてください。 'return'を使うときのように、あなたが戻ってきたら、それが問題です。あなたは 'echo'を使っているはずです。 –

+0

私は両方の方法を試みましたが、ここに関数があります: \t function alias_valid(){ \t \t echo "reached"; \t} – thuey

+0

'SITE_ROOT'は正しく設定されていますか?この 'SITE_ROOT'を使う代わりにURL全体をハードコーディングしてみてください。 – ccheneson

答えて

0

$.postにはaction引数がありません。代わりにURLの末尾に連結してみてください。

$.post(SITE_ROOT + "includes/AbstractEvent.php/alias_valid/",{ 
    alias : alias}, 
    function(v){ 
     alert(v); 
    }); 

しかし、MVCフレームワークを使用している場合を除き、これはうまくいきません。または、クラス内の特定の関数を呼び出す何らかの種類の要求ルーティング。

+0

それも動作しませんでした。しかし、ありがとう。 – thuey

+0

うん、あなたはクラス内の関数を呼び出そうとしないでしょうか? –

+0

Yest、でも私はクラスの外に置いてきました。 – thuey

1

、それは静かに

構文が起こって異常がないかチェックするために.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"); }); 

More info on $.post

+0

私はそれを試み、それは合格しました。しかし、ありがとう、 – thuey

0

あなたの変数の1つが未定義です。実際にコード内にSITE_ROOTaliasが定義されていることを確認します。 SITE_ROOT/で終わるかどうかも確認してください。

コンソールを起動するには(F12)、すべてのエラーを確認してください。何もない場合は、サーバーから空の応答が得られている可能性があります。

例に基づいてworking jsfiddleがあります(コンソールの出力にアクセスするにはF12をもう一度押してください)。

+0

SITE_ROOTは/で終わります。正しいディレクトリが含まれています。エイリアスはコード内で定義されています。それに、私はその部分を取り除きました、そして、それはまだ動作しませんでした。 – thuey

+0

提案ありがとう、btw。 – thuey

関連する問題