php+ajax简单实现跨域(http+https)请求调用
当一个网站 a站 需要调用另一个网站 b站 列表文章时
比如:www.a123.com 调用 www.b456.com 文章
在 a站 建立php文件获取 b站 资源文章到本地后,再传递a站前端
在网站 b456 下的文件为
<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>
CSS:
/*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;}
还有一种情况就是,当遇到
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'); // 设置是否允许发送 cookies header('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; }
转载于:https://www.cnblogs.com/chervehong/p/10294367.html
php+ajax简单实现跨域(http+https)请求调用相关推荐
- 中止请求和超时 跨域的HTTP请求 认证方式 JSONP
中止请求和超时 一个栗子在上传多少秒以后直接终止请求 // 发起HTTP GEt请求获取指定URl的内容 // 如果响应成功到达,将会传入responseText给回调函数 // 如果响应在timeo ...
- AJAX之封装+跨域
AJAX5步法 先简单回顾下之前所说的5步法 1.创建异步对象XMLHttpRequest /* 1.创建 XMLHttpRequest一步对象*/var xhr;if (window.XMLHttp ...
- jsonp+ajax实现浏览器跨域通信
2019独角兽企业重金招聘Python工程师标准>>> Ajax/XDomainRequest 网络跨域访问控制 jsonp是一种技术手段而不是一种协议,也不是json数据. < ...
- 原生JS实现Ajax和JSONP跨域请求
背景: 对接身份证录入和门锁卡号录入设备中,安装驱动完成后,提供的接口服务是http://localhost:8099/?cmd=readbcardid&charset=gbk,返回的数据格式 ...
- JQuery - Ajax和Tomcat跨域请求问题解决方法!
JQuery - Ajax和Tomcat跨域请求问题解决方法! 参考文章: (1)JQuery - Ajax和Tomcat跨域请求问题解决方法! (2)https://www.cnblogs.com/ ...
- 优雅的封装ajax,含跨域
之前写过一篇 先定一个小目标,自己封装个ajax,是基于原生js的,也就是jquery中ajax的简化版本实现的思路.众所周知,jquery的ajax是项目中最常用的请求后台的方式,也算是封装的很完美 ...
- jsonp的原理·jsonp是不是ajax中实现跨域访问的技术
ajax请求受同源策略影响,不允许进行跨域请求,而script标签src属性中的链接却可以访问跨域的js脚本,利用这个特性,服务端不再返回JSON格式的数据, 而是返回一段调用某个函数的js代码,在s ...
- Ajax的Post跨域请求
Ajax的Post跨域请求 什么是跨域请求 同协议,同ip,同端口视为一个域,两个域之间互相访问就是跨域访问请求. 根据浏览器的同源策略,一个域中的脚本只具有访问本域资源的权限,无法访问其他域的资源. ...
- 跨域和options请求
前后端分离的项目中,前端和后端单独部署,使用不同的域名,前端代码在浏览器端访问后端的时候就会有跨域问题. 之前帮前端调试活动页面的时候,chrome调试工具上总是看到一个请求会重复发两次,后端加了锁, ...
最新文章
- Maven 的Could not calculate build plan错误解决方法(不一定适用,看原因)
- java判断直到_3. JavaSE-位运算及判断循环程序结构的讲解
- 2793 [Poi2012]Vouchers
- 小程序动态设置style,使用内部数据
- the job was canceled什么意思_什么第三人称单数形式?怎么用?
- matlab文件序号超出511,求教一段matlab的代码 - 数学 - 小木虫 - 学术 科研 互动社区...
- 线条边框简笔画图片大全_超治愈萌系手帐素材大全 美食旅游花草人物花边都备齐了...
- python一般的类有三部分组成_Python学习笔记总结(三)类
- Openbox 3.3
- POJ--3278 Catch That Cow
- EDA实验:数字频率计(FREQ)设计(VHDL)
- 软件工程-第2章复习总结
- 使用批处理进行批量重命名
- php7关闭缓存、禁用缓存
- VMware下载,安装及创建虚拟机
- 数据库并发问题 封锁协议 隔离级别
- 新的一年,如何做好日计划、月计划与年计划?
- 以下哪些是微型计算机,2017版计算机试题及答案
- 关于运算放大器电流流向的问题
- 大豆SNP位点信息查找V2.1版本