两种方式实现js, ajax跨域
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
做客戶端軟件或手機(jī)應(yīng)用,沒(méi)有域,所以要解決跨域通信。
第一種方式就是jsonp
這個(gè)大家可以查一下,這里直接貼實(shí)例
html代碼
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Generator" content="EditPlus?">
<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",//傳遞給請(qǐng)求處理程序或頁(yè)面的,用以獲得jsonp回調(diào)函數(shù)名的參數(shù)名(一般默認(rèn)為:callback) jsonpCallback:"bbb",//自定義的jsonp回調(diào)函數(shù)名稱,默認(rèn)為jQuery自動(dòng)生成的隨機(jī)函數(shù)名,也可以寫(xiě)"?",jQuery會(huì)自動(dòng)為你處理數(shù)據(jù) success: function(json){ alert('您查詢到航班信息:票價(jià): ' + json.price + ' 元,余票: ' + json.tickets + ' 張?;卣{(diào)函數(shù)名為: '+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; ?>
這樣你直接雙擊運(yùn)行html或在其他域名主機(jī)下運(yùn)行可以實(shí)現(xiàn)通信
第二種方式,就是php等的服務(wù)端腳本,頭信息加入
header('Access-Control-Allow-Origin: *');
這樣,其腳本的返回值就可以在任何域下使用了,ajax保持原來(lái)的用法即可。
轉(zhuǎn)載于:https://my.oschina.net/snowing1990/blog/631002
總結(jié)
以上是生活随笔為你收集整理的两种方式实现js, ajax跨域的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 网站遭遇CC及DDOS攻击紧急处理方案
- 下一篇: 千亿级别数字的人民币读法