ajax が php の戻り値を取得できない問題の解決策:
1. まず、 ajax かどうかを確認する 非同期であるため、Async は直接結果を返すことができません。
/*常见错误示例 直接在 ajax 里面return 结果*/ function demo(){ $.ajax({ url : 'test.do', type : "post", data : {}, async : false, success : function(data) { return 2; } }); }/* 结果 无返回 */
2. 次に、ajax がネストされた関数でデータを返さないことを確認します。ajax を呼び出す関数はデータを返す必要があります。
/** * (1)同步调用 (2)且在ajax对全局变量进行设值 (3)ajax函数外将变量return * 结果:返回 2。成功获取返回值 * 成功原因:先执行result = 2;再往下执行return result; */ function demo1(){ var result = 1; $.ajax({ url : 'test.do', type : "post", data : {}, async : false, success : function(data) { result = 2; } }); return result; //2 }
3. 正常に動作します。ただし、ajax を同期リクエストに変更するとブロックが発生します。ajax には非同期リクエストが必要です。
/** * 添加async:true.即修改为异步 * 结果以callback的形式回调 */ function demo1(params,callback){ var result = 1; $.ajax({ url : 'test.do', type : "post", data : {"params ":params }, async : true, success : function(data) { result = 2; callback(result); } }); } demo1("Value",function(rs){ //do someting })
注: ajax によってリクエストされた php には、echo または print データが必要です。そうでない場合、ajax はデータを取得できません。
PHP 関連の知識の詳細については、PHP 中国語 Web サイト をご覧ください。
以上がajaxはphpの戻り値を取得できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。