ajax取得不到php回傳值的解決方法:
1、先檢查ajax是否是異步,非同步不可以直接return回傳結果。
/*常见错误示例 直接在 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中文網!
以上是ajax獲取不到php返回值的詳細內容。更多資訊請關注PHP中文網其他相關文章!