以前一篇博客詳細的說明了jsonp協議,jquery ajax封裝了jsonp協議,讓跨域請求實現如此簡單:php
- $.ajax({
- type : "post",
- url : "http://www.phpddt.com/ajax/test",
- dataType : "jsonp",
- jsonp: "callback",//傳遞給請求處理程序或頁面的,用以得到jsonp回調函數名的參數名(默認爲:callback)
- jsonpCallback:"success_jsonpCallback",//自定義的jsonp回調函數名稱,默認爲jQuery自動生成的隨機函數名
- success : function(json){
- alert('success');
- },
- error:function(){
- alert('fail');
- }
- });
服務器端處理以下:html
- $data = .......
- $callback = $_GET['callback'];
- echo $callback.'('.json_encode($data).')';
- exit;
當使用jsonp時,使用 JSONP 形式調用函數時,如 "myurl?callback=?" jQuery 將自動替換 ? 爲正確的函數名,以執行回調函數。jquery