跨域的其他方式

薄洪涛6年前PHP1129

上次向大家介绍了跨域的解决方式jsonp,总感觉差点什么,所以,补充一下,介绍另外一种跨域方式:

比如说,公司内部系统之间,比如ERP和OA之间想要进行数据交互,但是每个系统都有自己的域名,如果想实现数据的共享(使用ajax)就需要使用跨域请求。

html代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function callback(msg) {
        alert(msg)
        }
    </script>
    <script src="http://www.space.com/jsonp/kuayu.php?fn=callback"></script>
 </head>
    <body>
        <input type="button" id="bt" value="跨域请求">
  </body>
</html>

php代码

<?php
$fn = $_GET['fn'];
$str = 'hello ajax';
echo $fn."('$str')";

点击button,我们会发现,弹出msg

换个思路

把html代码换成如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>
        function callback(msg) {
            alert(msg)
        }
        window.onload = function () {
            document.getElementById('bt').onclick = function () {
                var sc = document.createElement('script');
                sc.src = "http://www.space.com/jsonp/kuayu.php?fn=callback";
                document.getElementsByTagName('head')[0].appendChild(sc);
            }
        }
    </script>
</head>
<body>
<input type="button" id="bt" value="跨域请求">
</body>
</html>

php代码不变

其中,php代码中返回的数据并不一定是str,也可以是json格式(比如从数据库中查询出来的记过json_encode一下);

这样就可以实现不同域之间的跨域数据共享

相关文章

五十个小技巧提高PHP执行效率

    在项目开发过程中,经常遇到了一些PHP处理程序性能底下的情况,程序运行在centos+nginx环境,虽然这个有很多的原因如:服务器本身配置,运行环境n...

Elasticsearch第三篇之全文搜索及在Yii2.0中的使用

Elasticsearch第三篇之全文搜索及在Yii2.0中的使用

前几天做了一个模块,大数据的搜索,其实也不是特别大,组合起来差不多800万左右,用的是mysql数据库,需求有这么变态的两点;需要按照地址去搜索按照起止时间去搜索别的不说,就这两条,mysql也就只能...

Elasticsearch第二篇之数据操作

    上一篇向大家讲解了Elasticsearch的部署安装和基本设置,这篇文章就和大家一起熟悉下Elastic的数据库操作,和普通数据库不同,es库需要公告...

抢红包的一些实现思路

抢红包的一些实现思路

最近探索了关于抢红包的一些实现思路,在此记录下本篇文章主要探讨了金额随机算法关于分布式锁的一些探索我们开始,首先说下抢红包的业务流程,分为两步,发红包和抢红包,在抢红包的时候,并发是非常大的,我们这里...

Yii2.0搭建接口模块教程

Yii2.0搭建接口模块教程

最近我需要做一个大项目中的一个模块,考虑用前后端分离,所以想自己搭建一套基于Yii2.0的restful接口出来,本来的时候老大想让我用spring boot,无奈我太菜只会php.....教程开始:...

workerman实现聊天室

workerman实现聊天室

Workerman的一些应用方向如下1、即时通讯类 例如网页即时聊天、即时消息推送、微信小程序、手机app消息推送、PC软件消息推送等等 [示例 workerman-chat聊天室 、&nb...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。