Jquery DataTable是一個強大的表格插件,它可以幫助我們靈活地管理和展示數(shù)據(jù)。其中,如果我們需要從服務(wù)器獲取JSON數(shù)據(jù),就需要使用到JSONP來實現(xiàn)跨域請求。下面,我們就來具體了解一下如何使用JSONP來訪問數(shù)據(jù)。
$('#example').dataTable( { "ajax": { "url": "http://example.com/data.json", "dataType": "jsonp", "data": function ( d ) { return $.extend( {}, d, { "apikey": "12345" } ); } } } );
在上面的代碼中,我們首先指定了數(shù)據(jù)請求的URL為 http://example.com/data.json,然后通過dataType參數(shù)指定了使用jsonp格式來獲取數(shù)據(jù)。接下來我們通過data回調(diào)函數(shù),增加了一個apikey參數(shù),以便對數(shù)據(jù)進行身份驗證。
需要注意的是,由于JSONP跨域請求需要在服務(wù)器端設(shè)置相應(yīng)的回調(diào)函數(shù),因此在服務(wù)器端需要對jsonp請求進行特殊處理。例如,在PHP中可以使用如下代碼來進行處理:
if(isset($_GET['callback'])) { header('Content-Type: application/javascript'); echo $_GET['callback'].'('.json_encode($data).')'; exit(); }
在上述代碼中,我們首先判斷是否有callback參數(shù),如果有則返回JSONP格式的數(shù)據(jù)。其中,$data是服務(wù)器端返回的json對象。需要注意,callback參數(shù)的值是由前端發(fā)起請求時生成的隨機函數(shù)名,服務(wù)器端需要將該函數(shù)名作為參數(shù)進行處理。