分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

php+ajax简单实现跨域(http+https)请求调用

发布时间:2023-09-06 02:30责任编辑:赖小花关键词:http跨域

当一个网站 a站 需要调用另一个网站 b站 列表文章时

比如:www.a123.com 调用 www.b456.com 文章

在 a站 建立php文件获取 b站 资源文章到本地后,再传递a站前端

在网站 b456 下Doc文件为

<ul class="ls_wz"><li><a href="#" target="_blank" title="title1" >内容1</a><span>[1970-01-01]</span></li><li><a href="#" target="_blank" title="title2" >内容2</a><span>[1970-01-01]</span></li><li><a href="#" target="_blank" title="title3" >内容3</a><span>[1970-01-01]</span></li></ul>

在网站 a123 根目录(随意)下建立

a .php 文件:

 <?php//获取文中传递参数//$data[‘title‘]=$_GET[‘title‘];// $data[‘link‘]=$_GET[‘link‘];// $data[‘pubDate‘]=$_GET[‘pubDate‘]; ?$data[‘callback‘]=$_GET[‘callback‘];//尤为重要模拟跨callback //$data = array(‘title‘=>title,‘link‘=>link,‘pubData‘=>pubData,‘callback‘=>callback); ??//$dataToJson = json_encode($data); ???//var_dump($data); ??$url="http://www.b456.com/b.php";//B站请求地址 ??$postdata = http_build_query($data); ????$opts = array( ??????‘http‘=>array( ??????‘method‘=>"GET", ??????‘timeout‘=>60, ????) ??); ??$context = stream_context_create($opts); ??$result = file_get_contents($url."?".$postdata, false, $context); ??echo ?$result; ??//var_dump($result); ?>

a.html 文件:

<script type="text/javascript" src="js/jquery.min.js"></script><div id="zd" class="ls_wz" style="height:144px; overflow:hidden"> ???????</div> ??????????????????<script> ???????????$(function() { ???????????????var url = ?‘http://www.a123.com/a.php‘; ???????????????$.ajax({ ???????????????????type: "get", ???????????????????url: url, ???????????????????async: false, ???????????????????//dataType:‘jsonp‘, ???????????????????success: function (data) { ???????????????????????var html = data; ???????????????????????//html += ‘<p class="more"><a target="_blank" href="#">更多+</a></p>‘; ???????????????????????$("#zd").html(html); ???????????????????????//alert(‘#zd‘); ???????????????????} ???????????????}) ???????????}) ???????</script><style>/*css*/.ls_wz{ float: left;height:144px;overflow:hidden;}.ls_wz li{ list-style:none; line-height:23px; padding: 0 8px; font-size:12px; width:320px; padding-left:12px; ????overflow:hidden;white-space: nowrap;text-overflow: ellipsis;} .ls_wz li a {word-break: keep-all;white-space: nowrap;display: inline-block;width: 320px;overflow: hidden;text-decoration:none; ???text-overflow: ellipsis;}.ls_wz li a:hover{color:#C30000; text-decoration:underline; }.ls_wz li span{ display:none;}</style>

还有一种情况就是,当遇到

http 和 https 通过认证验证的跨域请求调用:

header(‘Content-Type: text/html;charset=utf-8‘);header(‘Access-Control-Allow-Origin: *‘); //指定访问网站请求header(‘Access-Control-Allow-Methods:POST,GET,OPTIONS,DELETE‘); // 允许请求的类型header(‘Access-Control-Allow-Credentials: true‘); // 设置是否允许发送 cookiesheader(‘Access-Control-Allow-Headers: Content-Type,Content-Length,Accept-Encoding,X-Requested-with, Origin‘); // 设置允许自定义请求头的字段

当然了,不希望别人访问当前的文件:

//禁止访问当前文件 $fromurl="http://localhost/"; //跳转到这个地址。if( $_SERVER[‘HTTP_REFERER‘] == "" ){header("Location:".$fromurl); exit;}

php+ajax简单实现跨域(http+https)请求调用

原文地址:https://www.cnblogs.com/chervehong/p/10294367.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved