質問: false) { $("#error").html('エラーです。'); } return re; }); }); ``` こういった感じです。api.phpからは単純にjson形式で値が返ってきます。 ``` {"status":"OK","message":true} ``` Ajax自体はちゃんと動いていてjsonの値をとってこれられるのですが、testajax()という関数から想定した返り値が返ってこないといったところです。 非同期なので実行順序が想定した通りに進まず、現時点ではconsole.log(re);のところが先に実行され[OBJECT object]を返してきてその後にconsole.log(data['status']);が実行されております。またtestajax()からは、returnした値ではなく[Object {readyState: 1}]というものが返ってきてしまいます。 1. Ajaxで通信して、返ってきた値を元に様々な判定をして、 2. 関数の返り値として値を返したい。 というだけなのですが、なかなかうまく行きません。 ``` testajax().done(function(data){ .... } ``` この中では正常に動いているのですが、returnにfalseを返したい(または他の値でもいいと思う)ところですが、返らないので結果的にsubmitのアクションがfalseとtrueの制御ができないため進んでしまいます。 どなたか詳しい方おしえてください。 よろしくお願いします。
回答: jQuery.ajax()の実行結果は、jQueryにてsuccess,errorの判定をしていますので、 ``` $.ajax({ type: 'get', datatype: 'json', url: 'api.php', success: function(result){ // レスポンスを受け取った後の処理。引数resultには受け取ったデータが入る。 } }); ``` このように successの箇所で実行後の内容、ないしは呼び出す関数を記載してください。