关于跨域方面的问题

js_Cross_domain

  • Jsonp 与 CORS跨域方式的区别

    • CORS方法更好一些,但是需要对服务器有自主权。JSONP则不需要对服务器有自主权,可以通过script、img等标签可以发送GET请求的特点,通过回调函数执行已有的JS函数。在函数内获取返回值。

    • CORS支持所有HTTP请求,JSONP只支持GET请求。

  • 使用js实现跨域,利用jsonp方式

  • / *   客户端 * /
    <script>
    
       /* 动态生成script标签前优先声明callback回调函数来接受回调数据 */
         function test(data){
            console.log(data);       // {"user":"lee","passwd":"123"}
        }
    
       /* 动态生成script标签引用跨域脚本uri   */
        var script = document.createElment('script);
        script.type = 'text/javascript';
        script.src = 'http://www.test.com/test.php?callback=test';
        document.body.appendChild(script);
    </script>
    
    
    
    /*  跨域请求服务器端脚本  */
    <?php
      $callback = $_GET['callback'];
      $str_data = json_encode(array('user'=>'lee','passwd'=>'123'));
      echo $callback.'('.$str_data.')';       // 将回调数据用自定义的callback函数名和括号包裹起来
    

      

  • php利用header函数配置CORS,利用CORS(Cross-origin resource sharing )方式实现跨域

    <?php
     header("Access-Control-Allow-Origin:*");  // *号为允许所有域名,推荐修改成需要跨域的域名
    CORS方式跨域

     

 

posted @ 2018-03-27 23:52  MR_leew  阅读(137)  评论(0编辑  收藏  举报