php跨域的几种方式
PHP实现跨域的几种形式
1、JSONP(JSON with padding)原理
利用html里面script标签可以加载其他域下的js这一特性,使用script src的形式来获取其他域下的数据,但是,因为是通过标签引入的,所以,会将请求到的JSON格式的数据作为js去运行处理,显然这样运行是不行的。
因此,就需要提前将返回的数据包装一下,封装成函数进行运行处理,函数名通过接口传参的方式传给后台,后台解析到函数名后在原始数据上包裹这个函数名,发送给前端。(JSONP 需要对应接口的后端的配合才能实现)php交流群:link
实例:
当script src请求到达后端后,后端会去解析callback这个参数,获取到字符串showData,在发送数据后端返回数据,用showData封装一下,即showData({"json数据"}) ,前端script标签在加载数据后,会把json数据作为showData的参数,调用函数运行。
2、CORS
CORS全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。
实现方式:
当使用XMLHttpRequest发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,如果确定接受请求,则在返回结果中加入一个响应头:Access-Control-Allow-Origin;浏览器判断该相应头中,是否包含Origin的值,如果有,则浏览器会处理响应,我们就可以拿到响应数据,如果不包含,浏览器直接驳回,这时,我们无法拿到响应数据。
实例:
server.js
index.html
3、postMessage
假设有两个域名(主域域名不一致),其中iframe页面是允许访问调用,那么就可以用postMessage实现。
原理:a域名发送请求postMessage,b域名间听到了message事件,就处理并返回数据
以上内容仅供参考!上就是php跨域的几种方式的详细内容,更多请关注php交流群:link

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
php不支持多线程怎么办
PHP 默认并不支持多线程,要使用多线程需要安装 pthread 扩展,而要安装 pthread 扩展,必须使用 --enable-maintainer-zts 参数重新编译 PHP,这个参数是指定编译 PHP 时使用线程安全方式。线程安全多线程是让程序变得不安分的一个因素,在使用多线程之前,首先要考虑线程安全问题:线程安全:线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的共享变量,使程序功能正确完成。在传统多线程中,由于多个线程共享变量,所以可能会导致出现如下问题:存在一个全局数组$arr = array('a');;A线程获取数组长度为1;B 线程获取数组长度为1;A 线程 pop 出数组元素 $a = array_pop($arr); $a = 'a';;B 线程也 pop 数组元素 $b = array_pop($arr); $a = null;;此时 B 线程内就出现了灵异事件,明明数组长度大于0,或没有 pop 出东西;PHP 实现PHP 实现的线程安全主要是使用 TSRM 机制对 全局变量和静态变量进行了隔离,将全局变量和静态...
- 下一篇
php网站开发步骤
PHP作为开源语言,发展至今已有很多成熟的国内外开源系统,足以满足个人和企业用户自己建立WEB站点,下面则主要介绍PHP做网站的步骤和流程。 不管使用PHP建立个人还是企业网站,网站建设的流程规范大体是一致的,涉及域名注册,服务器(空间)选择,了解用户需求,网站定位,PHP建站程序的选择与开发等流程。 请关注php交流群:link网站建设流程之域名注册 域名注册有一些基本原则,比如域名尽量短小,容易记忆,域名中包括网站关键字等,对于企业网站可以以公司名称或者销售的核心产品作为域名等,不过我觉得这些并不是最重要的,你可以把它理解为SEO优化技巧,最重要的还是做好网站内容,提供有价值的服务。 网站建设流程之服务器(空间)的选择 对于服务器或者空间的选择首先是必须稳定,这不但关系到访问者的感受,也影响到搜索引擎蜘蛛的感受。对于个人自己建站的朋友或者是草根创业团队,初期还是推荐使用空间,这样比较节省开支,切勿盲目选择服务器,不但开销大,维护成本也是不小的。 网站建设流程之网站定位 在完成了域名注册,空间选择之后,在真正进行网站开发之前必须对自身网站有一个合理的定位,需要思考网站主要干什么?网...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2整合Redis,开启缓存,提高访问速度