作客戶端軟件或手機應用,沒有域,因此要解決跨域通訊。javascript
第一種方式就是jsonpphp
這個你們能夠查一下,這裏直接貼實例html
html代碼java
<!doctype html>jquery
<html lang="en">ajax
<head>json
<meta charset="UTF-8">跨域
<meta name="Generator" content="EditPlus®">async
<meta name="Author" content="">函數
<meta name="Keywords" content="">
<meta name="Description" content="">
<title>Document</title>
</head>
<body>
<script src="jquery-1.8.3.min.js"></script>
<script type="text/javascript"> jQuery(document).ready(function(){ $.ajax({ type: "GET", async: false, //url: "http://test/jsonp.php", url:"http://local.ok.com/1.php", dataType: "jsonp", jsonp: "callback",//傳遞給請求處理程序或頁面的,用以得到jsonp回調函數名的參數名(通常默認爲:callback) jsonpCallback:"bbb",//自定義的jsonp回調函數名稱,默認爲jQuery自動生成的隨機函數名,也能夠寫"?",jQuery會自動爲你處理數據 success: function(json){ alert('您查詢到航班信息:票價: ' + json.price + ' 元,餘票: ' + json.tickets + ' 張。回調函數名爲: '+json.func); }, error: function(){ alert("fail"); } }); }); </script>
</body>
</html>
local.ok.com/1.php代碼
<?php $callback = isset($_GET["callback"]) ? $_GET["callback"] : 'flightHandler'; $a = array( 'code'=>'CA1998', 'price'=>'6000', 'tickets'=>20, 'func'=>$callback, ); $result = json_encode($a); echo "{$callback}($result)"; exit; ?>
這樣你直接雙擊運行html或在其餘域名主機下運行能夠實現通訊
第二種方式,就是php等的服務端腳本,頭信息加入
header('Access-Control-Allow-Origin: *');
這樣,其腳本的返回值就能夠在任何域下使用了,ajax保持原來的用法便可。