zoukankan      html  css  js  c++  java
  • springboot jsonp 跨域请求,springboot使用jsonp跨域

    springboot jsonp 跨域请求,springboot使用jsonp跨域

    ================================

    ©Copyright 蕃薯耀 2020-11-25

    https://www.cnblogs.com/fanshuyao/

    * spring框架4.1加入jsonp配置,在5.1时,删除不再建议使用该方式,而是使用:CORS
    * CORS地址:https://docs.spring.io/spring/docs/5.0.x/spring-framework-reference/web.html#mvc-cors

    springboot cors实现见:https://www.cnblogs.com/fanshuyao/p/14030944.html

    一、Java配置

    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice;
    
    import com.szpl.gtkj.cghj.workflow.controller.FlowTaskController;
    
    /**
     * spring框架4.1加入jsonp配置,在5.1时,删除不再建议使用该方式,而是使用:CORS
     * CORS地址:https://docs.spring.io/spring/docs/5.0.x/spring-framework-reference/web.html#mvc-cors
     *
     */
    @ControllerAdvice(basePackageClasses = FlowTaskController.class)
    public class JsonpConfig extends AbstractJsonpResponseBodyAdvice{
    
        /**
         * 声明构造方法
         */
        public JsonpConfig() {
            super("callback", "jsonp");
        }
        
    }

    二、前端调用

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>jsonp请求</title>
    <script type="text/javascript" src="js/jquery-3.4.1.min.js"></script>
    <script type="text/javascript" src="js/json3.min.js"></script>
    <script type="text/javascript" src="js/base.js"></script>
    </head>
    <body>
    
        <div>jsonp请求</div>
        <div>访问:http://127.0.0.1:7010/gtkjCghj/static/cross.html</div>
        <div>只能使用get方法</div>
        
        
    <script type="text/javascript">
    
    function ajax(){
        console.log("ajax()");
        $.ajax({  
            //async: false,//设置为同步,默认为异步(一般不需要)  
            url : "http://lqy.com:7010/gtkjCghj/workflow/processes?gxDocNo=f2-202000234",  
            type : "get",  
            dataType : "jsonp",
            jsonp : "callback",
            complete : function(XMLHttpRequest, textStatus){  
                //alert("textStatus="+textStatus);  
            },  
            error : function(XMLHttpRequest, textStatus, errorThrown){  
                if("error" == textStatus){  
                    alert("服务器未响应,请稍候再试");  
                }else{  
                    alert("请求失败,textStatus="+textStatus);  
                }  
             },  
             success : function(data){  
                 if(data != null){  
                     console.log("jsonp data===" + JSON.stringify(data));
                 }else{  
                     alert("返回结果为空!");  
                 }  
             }  
        }); 
    };
    
    
    ajax();
    </script>
    
    </body>
    </html>

    总结:cors跨域请求解决方案(建议采用方案1)

    1、springboot CORS 跨域请求解决三大方案,springboot CorsFilter解决跨域问题

    https://www.cnblogs.com/fanshuyao/p/14030944.html

    2、cors-filter使用,cors-filter解决跨域访问,cors-filter跨域请求

    https://www.cnblogs.com/fanshuyao/p/14036848.html

    3、org.ebaysf.web的cors-filter使用,cors-filter跨域请求

    https://www.cnblogs.com/fanshuyao/p/14042293.html

    4、java tomcat-catalina CorsFilter使用,apache tomcat-catalina CorsFilter使用

    https://www.cnblogs.com/fanshuyao/p/14042420.html

    5、springboot jsonp 跨域请求,springboot使用jsonp跨域

    https://www.cnblogs.com/fanshuyao/p/14034014.html

    ================================

    ©Copyright 蕃薯耀 2020-11-25

    https://www.cnblogs.com/fanshuyao/

  • 相关阅读:
    LeetCode题解之Flipping an Image
    LeetCode 之Find Minimum in Rotated Sorted Array
    LeetCode题解Transpose Matrix
    LeetCode 题解之Minimum Index Sum of Two Lists
    LeetCode题解之Intersection of Two Linked Lists
    LeetCode 题解之Add Two Numbers II
    LeetCode题解之Add two numbers
    href="#"与href="javascript:void(0)"的区别
    有关ie9 以下不支持placeholder属性以及获得焦点placeholder的移除
    ie7下属性书写不规范造成的easyui 弹窗布局紊乱
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/14034014.html
Copyright © 2011-2022 走看看