作客户端软件或手机应用,没有域,因此要解决跨域通讯。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保持原来的用法便可。