Thinkphp5框架ajax介面實現方法分析

佚名發表於2019-09-02

文章主要介紹了Thinkphp5框架ajax介面實現方法,結合例項形式分析了thinkPHP5 ajax互動相關操作技巧,需要的朋友可以參考下

前一篇講到thinkphp5從資料庫獲取資料之後賦給檢視view ,前一篇從資料渲染方式來說是服務端資料渲染,這一章則是瀏覽器端資料渲染。按照知識總結依據來劃分,這是兩種不同的技術場景。

下面介紹具體的ajax介面實現程式碼。

首先是html程式碼部分,我的訪問地址為:http://app.write.com/thinkphp/public/index.php/index/index/api,這裡沒有省略入口檔案,同時我本地的域名是app.write.com,tp5框架在thinkphp檔案裡面。這裡採用原生ajax,沒有做ie瀏覽器的相容性,程式碼如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>ajax呼叫介面</title>
</head>
<body>
  11111
  <div id="test">
  </div>
  <script type="text/javascript">
  var oAjax = new XMLHttpRequest();
  oAjax.open('GET',"/thinkphp/public/index.php/index/index/apiapi?name=1");
  oAjax.onreadystatechange = function() {
    if (oAjax.readyState == 4) {
      if (oAjax.status >= 200 && oAjax.status < 300 || oAjax.status == 304) {
        console.log(oAjax.responseText);
        var data=JSON.parse(oAjax.responseText);
        document.getElementById("test").innerHTML=data.sex;
      } else {
        console.log(oAjax.status);
      }
    }
  };
  oAjax.send();
  </script>
</body>
</html>

對上述程式碼做一下解釋,算是一個小知識點:一般來說可以將http狀態程式碼為200作為成功的標誌,此時responseText的屬性的內容已經就緒。此外狀態304表示請求的資源並沒有被修改,可以直接使用瀏覽器中快取的版本。

至於為啥是大於200是出於相容性的考慮,有的瀏覽器會報告204。

後端程式碼如下,後端程式碼是同一個模組index下的同一個控制器下index的apiapi方法。

<?php
namespace app\index\controller;
//use think\Db;
use think\Controller;
class Index extends Controller
{
   public function apiapi(){
    $name=$this->request->param();
    return json_encode($name);
    ///return "common";
  }
   public function api(){
    return view();
    ///return "common";
  }
}

程式碼首先獲取ajax獲取的引數,之後返回到前端。

相關文章