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/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM