• js跨域问题


    js不让不同域名下的数据交互。
    什么时候不存在跨域问题?
    www.a.com/xx.js www.a.com/文件夹名/xx.js不存在跨域问题。其他都存在。

    如www.a.b.com和www.a.com子域和主域间不可。不同域名间更不可以了,指向同一个IP地址也不可以。


    ajax:XMLHttpRequest();不能跨域,因为它的XMLHttpRequest对象在安全限制下不同意跨域(数据交换);


    解决方法:1.子域和主域都设置document.domain = 'a.com'
    2.服务器代理:不同域名下通过服务器代理,XMLHttpRequest下的代理文件(服务器做运算),优点,有数据交换,缺点,增加服务器的压力;
    3.script标签(src属性)(不存在跨域问题):jsonp---把json放到了了一个盒子里,function box(json){alert(json.name);}
    a.com下的《script src="www.b.com/json.js">scr指向b的js文件,里面有数据,然后再a里就可以使用,但要有函数来调用。
    跨域.html里
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>跨域问题</title>
    <script>
    // function createjs(url){
    // var script=document.createElement('script');
    // script.src=url;
    // document.getElementsByTagName('head')[0].appendChild(script);
    // }
    // createjs('json.js?callback=use');
    function use(json){
    alert(json.name);
    }
    </script>
    </head>
    <body>
    <script>

    </script>
    <script src="json.js" type="text/javascript"></script>
    <!-- 另一个域下的js -->
    </body>
    </html>
    -----------------------------
    json.js里
    use({name:'aaa'});


    4.window.name----->a.html里有框架b.html,在b里使用window.name=“数据”,在与a同一个域名下创建代理文件xx.html(可以是空文件);
    代理文件和window.name里的数据共享。

  • 相关阅读:
    浅谈localStorage本地存储
    前端代码中经常遇到的问题
    http状态码
    Transition 所支持的css属性
    ie8下的透明 问题
    #event.initMouseEvent
    svg 文字
    前端工作流程转变
    理解javascript 回调函数
    不要被npm、NodeJs、npm、webpack、vue-cli 这些名词搞晕
  • 原文地址:https://www.cnblogs.com/zhangxinxin111/p/4726705.html
Copyright © 2020-2023  润新知