zoukankan      html  css  js  c++  java
  • js----jsonp跨域

    1.为什么会跨域:

    因为浏览器同源策略的限制,不是同源的脚本不能操作其他源下面的对象。

    2.什么是同源策略:

    同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。
    可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 简单的来说:协议、IP、端口三者都相同,则为同源

    3.跨域的解决办法

    复制代码
    1.jsonp
    
    2.后端设置 cros
    
    3.webpack配置项  proxyTable
    
    4.node的第三方模块  http-proxy-middleware
    复制代码
     jsonp
    方法1:
    复制代码
    <script>
        //动态创建script标签
        var script = document.createElement("script");
        script.src = "https://api.douban.com/v2/book/search?q=javascript&count=1&callback=fn1";
       
        document.querySelector("head").appendChild(script);
    
        //请求成功的回调函数
        function fn1(data){
            console.log(data)
        }
    </script>
    复制代码
    方法2:
     $.getJSON("https://api.douban.com/v2/book/search?q=javascript&count=1&callback=?", function (data) {
            console.log(data);
        });

    方法3:

    复制代码
     $.ajax({
            //请求地址
            url: "https://api.douban.com/v2/book/search", 
            //请求方式
            type: "GET", 
            // 返回的数据类型,设置为JSONP方式
            dataType: "jsonp", 
            //指定一个查询参数名称来覆盖默认的 jsonp 回调参数名 callback,默认callback
            jsonp: 'callback', 
            //设置回调函数名(自定义)
            jsonpCallback: 'handleResponse', 
            //传递的值
            data: { 
                q: "javascript",
                count: 1
            },
            //请求成功
            success: function (data) {
                //请求的数据
    
            }
        });
  • 相关阅读:
    读懂Netty的高性能架构之道
    大型网站架构演变和知识体系(转载)
    SAX,功能强大的 API
    防雪崩利器:熔断器 Hystrix 的原理与使用
    分布式系统设计系列 -- 基本原理及高可用策略
    分布式系统的事务处理
    分布式服务框架之服务化最佳实践
    深入理解 Java 虚拟机:JVM 高级特性与最佳实践
    内存屏障
    IntelliJ IDEA 2016 破解旗舰版
  • 原文地址:https://www.cnblogs.com/SRH151219/p/10497484.html
Copyright © 2011-2022 走看看