SpringBoot 第三課——跨域請求

現在的很多開發模式是前後端分離的,所以前端頁面和後端服務通常不在同一個域中,但是瀏覽器有一個安全策略,就是不允許跨域請求數據,爲什麼不允許,可以找相關文章學習。下面我們來解決我們的後端服務允許跨域請求。

本地桌面寫一個頁面crossdomain.html,通過ajax請求後端數據:


<!DOCTYPE html>
<html style="height: 100%; margin: 0">
<head>
<meta charset="utf-8">
<title>crossdomain</title>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script>
</head>
<body >
   <div id = "data" ></div>
<script type="text/javascript">

//ajax請求數據
$.ajax({
    type:"get",
    url:"http:localhost:8080/getByCroDo",
    success:function(data){
       $("#data").text(data);
    },
    error:function(){
    	$("#data").text("數據請求失敗");
    }
    });
   
</script>
</body>
</html>

 在後端,我們新創建一個方法:

@RequestMapping("/getByCroDo")
public String getCrossDomain() {
   return "response Cross Domain request..";
}

來試試用瀏覽器打開 crossdomain.html,結果如下:

前端頁面和我們的後臺服務不在一個域,安全策略導致數據請求失敗。那怎麼解決呢?很簡單,一個註解搞定,如下:

    // 可以被跨域請求的方法
    // @CrossOrigin可以放在方法上,也可以放在類上
    @CrossOrigin(origins="*",allowCredentials="true")
    @RequestMapping("/getByCroDo")
    public String getCrossDomain() {
    	return "response Cross Domain request..";
    }

再來看看:

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章