文章主要介紹了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獲取的參數,之后返回到前端。
分享到:
投訴收藏