两种方式实现js, ajax跨域
两种方式实现js, ajax跨域
snowing1990 发表于2年前
两种方式实现js, ajax跨域
  • 发表于 2年前
  • 阅读 76
  • 收藏 4
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

做客户端软件或手机应用,没有域,所以要解决跨域通信。

第一种方式就是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保持原来的用法即可。

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 4
博文 90
码字总数 2952
×
snowing1990
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: