zoukankan      html  css  js  c++  java
  • 跨域问题的产生及解决方法

    域(Domain)是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。 有一种简明的说法来解释广域跨域:跨域访问,简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容。由于安全原因,跨域访问是被各大浏览器所默认禁止的。

    解决方案:

    1、js向服务器发送请求,然后让服务器去另一个域上获取数据后返回。(用于你无法控制另一个域) 比如php中利用cUrl。
    2、放置跨域文件.
    3、用JSONP。虽然不能跨域进行通信,但是可以引入跨域的js文件。
    先定义一个函数

    var returnData;
    function getData(obj) {
       returnData = JSON.parse(obj);
    }


    当我们要向www.baidu.com/s.php请求数据的时候,我们可以引入某个包含返回信息的js文件。
    比如: <script type="text/javascript" src="www.baidu.com/s.php?id=12321" /> 
    js的内容是getData({json:'格式'});返回时输出 格式是 text/javascript (比如php用header('Content-type:text/javascript');来输出)
    那么文件加载好后解析js时就会执行这个函数,返回得到的数据就被赋值给了returnData变量
    以这样的方式插入到页面中:

    var script = document.createElement('script');
    script.src='www.baidu.com/s.php?id=12321';  //传入参数id=12321
    body.appendChild(script);
  • 相关阅读:
    Clam and fish
    费马小定理求逆元模板题
    1
    DP 习题
    106. 从中序与后序遍历序列构造二叉树
    计算几何(判断四边形形状)
    中国剩余定理
    BFS模板
    DFS模板
    线段树
  • 原文地址:https://www.cnblogs.com/bingosblog/p/6017947.html
Copyright © 2011-2022 走看看