Jsonp(JSON with Padding) 是 json 的一種"使用模式",可以讓網頁從別的網域(網站)取得資料,即跨網域讀取資料。
為什麼我們從不同的網域(網站)存取資料需要一個特殊的技術(JSONP )呢?這是因為同源策略。
同源策略,它是由Netscape提出的一個著名的安全策略,現在所有支援JavaScript 的瀏覽器都會使用這個策略。
首先:jsonp是json用來跨域的一個東西。
原理是透過script標籤的跨域特性來繞過同源策略。
經過測試實驗:
發送端:
$.ajax({ type : "post", url : "ajax.php", dataType : "jsonp", jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback) jsonpCallback:"jsonpcallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名 success : function(json){ alert('success'); }, error:function(){ alert('fail'); } });
伺服器端(php):
<?php $data = "aaa"; $callback = $_GET['callback']; echo $callback.'('.json_encode($data).')'; exit; ?>