今天我們來談一談js調(diào)用php接口,這在前端開發(fā)中經(jīng)常會遇到。當(dāng)我們需要從后端獲取數(shù)據(jù)時,就需要用到php接口來作為數(shù)據(jù)源,那么如何調(diào)用php接口呢?以下我們就來聊一聊。
首先,需要明確的是,調(diào)用php接口一般都是使用ajax來進行異步請求,通過ajax可以后臺調(diào)用php頁面。以獲取后臺數(shù)據(jù)為例,代碼如下:
$.ajax({ url: 'example.php', //數(shù)據(jù)庫訪問路徑 data: { id: 123 }, type: 'POST', dataType: 'json', success: function(data){ console.log(data); } });
上述代碼中,通過url設(shè)置了訪問路徑,通過data設(shè)置了post傳入的參數(shù),通過type設(shè)置了提交方式,通過dataType設(shè)置了返回數(shù)據(jù)類型。如果后端返回的數(shù)據(jù)格式為json,則可以在success中獲取data。
那么如何在php中處理請求呢?一個例子如下:
header("Content-Type:application/json;charset=utf-8"); $id = $_POST['id']; $sql = "SELECT * FROM example WHERE id = $id"; $result = mysql_query($sql); $rows = array(); while($row = mysql_fetch_assoc($result)){ $rows[] = $row; } echo json_encode($rows);
上述php代碼中,先通過header設(shè)置返回數(shù)據(jù)類型為json,接著通過$_POST獲取前端傳來的參數(shù),然后進行數(shù)據(jù)庫操作,最后將獲取到的數(shù)據(jù)通過json_encode編碼成json數(shù)據(jù)返回給前端。
需要注意的是,在處理ajax請求時,如果出現(xiàn)跨域問題,則需要在php端加上相應(yīng)的header,如下:
header('Access-Control-Allow-Origin:*'); header('Access-Control-Allow-Methods:POST,GET,OPTIONS'); header('Access-Control-Allow-Headers:x-requested-with,content-type');
以上即為使用js調(diào)用php接口的一些核心內(nèi)容,希望對前端開發(fā)的同學(xué)們有所幫助。