今天在ci框架中用 return 返回 josn_encode資料 給前台ajax ,前台獲取始終為空。(原生php return也為空)
改為echo後就可以獲取到。本人之前用tp的時候一直用return就能獲取到。
最終看了別人的一些ci** 這種情況也是用的echo
return 作為函式返回值或結束語句,是返回的資料的指標,也就是資料存放的位址,而介面需要返回的是真實的資料,
因為前後端使用的是不同的記憶體系統,所以無法根據位址找到相應的資料,而echo print_r var_dump等這些能夠在瀏覽器中列印資料的函式都是基於http協議傳輸的真是資料,所以在前端是可以獲取和判斷的.
ajax獲取返回值是使用http請求。return不會產生輸出(只在server端進行),而echo可以(從server -> brower,http協議)。ajax請求的url其實就是乙個頁面,它可以在瀏覽器顯示,而 php中以return返回資料只是在伺服器端去返回這些資料。
綜上所述,如果ajax 位址是乙個php return,將不會獲取到正確資料。
需要注意的是,在tp框架中,return關鍵字的確是可以給返回資料的,也就是可以作為介面返回資料關鍵字的,但是用原生的php是不行的,這應該是tp框架內部做過處理了吧!可以去看下tp的原始碼!
參考:
koa 介面返回資料 koa 介面非同步返回資料問題
用koajs實現了乙個介面,介面裡面讀取了乙個文字檔案,但是返回資料的時候不能等待檔案處理完成後返回資料,而是在最外層才能返回資料。求解。已解決,附上 use strict const readline require readline const fs require fs const path ...
php寫app介面並返回json資料
第一步 conn.php檔案,用於連線資料庫並定義介面格式,如下 header charset utf 8 servername localhost username root password root dbname test conn mysql connect servername,usern...
PHP返回介面資料使用return還是echo
問題 yii2框架,前後端分離的,前端呼叫後台介面,後台使用echo返回結果,前端報錯。解決 使用return返回資料,或者echo之後不加die exit等這類結束語句。前端可以接收到傳遞的資料,不報錯。return 111 正常 網上找到的兩句有關return和echo的解釋 return 作為...