两种方式实现js, ajax跨域
2019獨角獸企業重金招聘Python工程師標準>>>
做客戶端軟件或手機應用,沒有域,所以要解決跨域通信。
第一種方式就是jsonp
這個大家可以查一下,這里直接貼實例
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",//傳遞給請求處理程序或頁面的,用以獲得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保持原來的用法即可。
轉載于:https://my.oschina.net/snowing1990/blog/631002
總結
以上是生活随笔為你收集整理的两种方式实现js, ajax跨域的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网站遭遇CC及DDOS攻击紧急处理方案
- 下一篇: 千亿级别数字的人民币读法