php跨域的几种方式

 

PHP实现跨域的几种形式php

一、JSONP(JSON with padding)原理html

利用html里面script标签能够加载其余域下的js这一特性,使用script src的形式来获取其余域下的数据,可是,由于是经过标签引入的,因此,会将请求到的JSON格式的数据做为js去运行处理,显然这样运行是不行的。前端

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

实例:json

  

当script src请求到达后端后,后端会去解析callback这个参数,获取到字符串showData,在发送数据后端返回数据,用showData封装一下,即showData({"json数据"}) ,前端script标签在加载数据后,会把json数据做为showData的参数,调用函数运行。后端

二、CORS跨域

CORS全称是跨域资源共享(Cross-Origin Resource Sharing),是一种 ajax 跨域请求资源的方式,支持现代浏览器,IE支持10以上。浏览器

实现方式:函数

当使用XMLHttpRequest发送请求时,浏览器发现该请求不符合同源策略,会给该请求加一个请求头:Origin,后台进行一系列处理,若是肯定接受请求,则在返回结果中加入一个响应头:Access-Control-Allow-Origin;浏览器判断该相应头中,是否包含Origin的值,若是有,则浏览器会处理响应,咱们就能够拿到响应数据,若是不包含,浏览器直接驳回,这时,咱们没法拿到响应数据。post

实例:

server.js 

 

index.html

 

 

三、postMessage

假设有两个域名(主域域名不一致),其中iframe页面是容许访问调用,那么就能够用postMessage实现。

原理:a域名发送请求postMessage,b域名间听到了message事件,就处理并返回数据  

 

以上内容仅供参考!上就是php跨域的几种方式的详细内容,更多请关注php交流群:点击加群

相关文章
相关标签/搜索