两种方式实现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保持原来的用法便可。

相关文章
相关标签/搜索