专栏首页php专栏php跨域的几种方式
原创

php跨域的几种方式

PHP实现跨域的几种形式

1、JSONP(JSON with padding)原理

利用html里面script标签可以加载其他域下的js这一特性,使用script src的形式来获取其他域下的数据,但是,因为是通过标签引入的,所以,会将请求到的JSON格式的数据作为js去运行处理,显然这样运行是不行的。

因此,就需要提前将返回的数据包装一下,封装成函数进行运行处理,函数名通过接口传参的方式传给后台,后台解析到函数名后在原始数据上包裹这个函数名,发送给前端。(JSONP 需要对应接口的后端的配合才能实现)

实例:

当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群793603132欢迎各位大佬进群交流学习

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用php的swoole框架,实现高性能长连接websocket

    以上就介绍了使用php的swoole框架,实现高性能长连接websocket,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。大型PHP项目实战直播资料...

    叫我可儿呀
  • PHP中Redis扩展无法加载问题

    phpredis编译出来的redis.so也需要拷贝到"/usr/lib64/php/modules/"中;

    叫我可儿呀
  • 提高PHP性能效率的几个技巧

    ● 用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它 是一种可以把多个...

    叫我可儿呀
  • Linux基金会企业开源指南系列之二 -- 开始创建开源项目(中)

    本文拥有创作共用授权之相同方式共享授权4.0版国际许可协议(Creative Commons Attribution ShareAlike 4.0 Intern...

    开源社
  • 太难了!谷歌无人车老大承认遥遥无期,全自动驾驶寒冬将至?

    话音还未落,今天,另一位硅谷大佬苹果联合创始人Steve Wozniak紧跟话茬:自动驾驶汽车不可能在不久的将来实现,并且还直言“我不相信自动驾驶汽车”。

    新智元
  • Nginx 核心架构设计,揭秘其为何能支持高并发?

    Nginx 作为业界知名的高性能服务器,被广泛的应用。它的高性能正是由于其优秀的架构设计,其架构主要包括这几点:模块化设计、事件驱动架构、请求的多阶段异步处理、...

    掌上编程
  • 2010年以来重大网络安全事件盘点

    二十一世纪的第二个十年即将过去,在过去十年里有哪些重要网络安全事件发生,小编带大家一起来回顾一下。

    FB客服
  • 干货:看了这篇以后不要再说看不懂 Circos 图了

    本文根据杨振涛 2018 年 5 月 12 日在【第九届中国数据库技术大会】上的演讲内容整理而成。

    杨振涛
  • 学界 | 纽约大学提出端到端优化图像压缩方法,全面超越JPEG 2000 | ICLR 2017

    AI科技评论按:ICLR 2017 将于4月24-26日在法国土伦举行,届时AI科技评论的编辑们也将前往法国带来一线报道。在这个深度学习会议举办之前,AI科技评...

    AI科技评论
  • 神奇的go语言(网页下载)

    目前,网上关于网页爬行的代码很多。但是,自从看了go语言的web下载代码之后,我才发现原来它的网页下载代码才是最简单的。不信的话,大家可以看一下, packa...

    李海彬

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动