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/

  • 相关阅读:
    函数防抖和函数节流.md
    es6的展开运算符.md
    web安全-xss.md
    es6 数组实例中的find() 和 findIndex() 方法.md
    vuex的学习
    利用nodejs搭建本地服务器.md
    webpack的配置学习
    npm常用命令
    配置phpstorm支持less自动编译css
    Nginx配置中遇到到的问题和解决方案
  • 原文地址:https://www.cnblogs.com/fanshuyao/p/14034014.html
Copyright © 2011-2022 走看看