兩種方式實現js, ajax跨域

作客戶端軟件或手機應用,沒有域,因此要解決跨域通訊。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保持原來的用法便可。

相關文章
相關標籤/搜索