码农日记

薄洪涛的个人博客

跨域的其他方式

上次向大家介绍了跨域的解决方式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一下);

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

发表评论:

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

Powered By Z-BlogPHP 1.7.3

版权所有 | 转载请标明出处