當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringMVC中的异步请求-跨域访问
生活随笔
收集整理的這篇文章主要介紹了
SpringMVC中的异步请求-跨域访问
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
發(fā)送異步請求:
<%@page pageEncoding="UTF-8" language="java" contentType="text/html;UTF-8" %><a href="javascript:void(0);" id="testAjax">訪問springmvc后臺controller</a><br/> <a href="javascript:void(0);" id="testAjaxPojo">訪問springmvc后臺controller,傳遞Json格式POJO</a><br/> <a href="javascript:void(0);" id="testAjaxList">訪問springmvc后臺controller,傳遞Json格式List</a><br/> <a href="javascript:void(0);" id="testAjaxReturnString">訪問springmvc后臺controller,返回字符串數(shù)據(jù)</a><br/> <a href="javascript:void(0);" id="testAjaxReturnJson">訪問springmvc后臺controller,返回Json數(shù)據(jù)</a><br/> <a href="javascript:void(0);" id="testAjaxReturnJsonList">訪問springmvc后臺controller,返回Json數(shù)組數(shù)據(jù)</a><br/> <br/> <a href="javascript:void(0);" id="testCross">跨域訪問</a><br/><script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-3.3.1.min.js"></script><script type="text/javascript">$(function () {//為id="testAjax"的組件綁定點擊事件$("#testAjax").click(function(){//發(fā)送異步調用$.ajax({//請求方式:POST請求type:"POST",//請求的地址url:"ajaxController",//請求參數(shù)(也就是請求內容)data:'ajax message',//響應正文類型dataType:"text",//請求正文的MIME類型contentType:"application/text",});});//為id="testAjaxPojo"的組件綁定點擊事件$("#testAjaxPojo").click(function(){$.ajax({type:"POST",url:"ajaxPojoToController",data:'{"name":"Jock","age":39}',dataType:"text",contentType:"application/json",});});//為id="testAjaxList"的組件綁定點擊事件$("#testAjaxList").click(function(){$.ajax({type:"POST",url:"ajaxListToController",data:'[{"name":"Jock","age":39},{"name":"Jockme","age":40}]',dataType:"text",contentType:"application/json",});});//為id="testAjaxReturnString"的組件綁定點擊事件$("#testAjaxReturnString").click(function(){//發(fā)送異步調用$.ajax({type:"POST",url:"ajaxReturnString",//回調函數(shù)success:function(data){//打印返回結果alert(data);}});});//為id="testAjaxReturnJson"的組件綁定點擊事件$("#testAjaxReturnJson").click(function(){//發(fā)送異步調用$.ajax({type:"POST",url:"ajaxReturnJson",//回調函數(shù)success:function(data){alert(data);alert(data['name']+" , "+data['age']);}});});//為id="testAjaxReturnJsonList"的組件綁定點擊事件$("#testAjaxReturnJsonList").click(function(){//發(fā)送異步調用$.ajax({type:"POST",url:"ajaxReturnJsonList",//回調函數(shù)success:function(data){alert(data);alert(data.length);alert(data[0]["name"]);alert(data[1]["age"]);}});});//為id="testCross"的組件綁定點擊事件$("#testCross").click(function(){//發(fā)送異步調用$.ajax({type:"POST",url:"http://www.jock.com/cross",//回調函數(shù)success:function(data){alert("跨域調用信息反饋:"+data['name']+" , "+data['age']);}});});}); </script>接收異步請求參數(shù):
- 名稱: @RequestBody
- 類型: 形參注解
- 位置:處理器類中的方法形參前方
- 作用:將異步提交數(shù)據(jù)組織成標準請求參數(shù)格式,并賦值給形參
- 注解添加到Pojo參數(shù)前方時,封裝的異步提交數(shù)據(jù)按照Pojo的屬性格式進行關系映射
- 注解添加到集合參數(shù)前方時,封裝的異步提交數(shù)據(jù)按照集合的存儲結構進行關系映射
異步請求響應數(shù)據(jù):
- 名稱: @ResponseBody
- 類型: 方法注解、返回值注解
- 位置:處理類中的方法前方
- 作用:將異步提交數(shù)據(jù)組織成標準請求參數(shù)格式,并賦值給形參
方法返回值為Pojo時,自動封裝數(shù)據(jù)成json對象數(shù)據(jù)
@RequestMapping("/ajaxReturnJson") @ResponseBody // 如果不加這個注解會變成在瀏覽器彈框展示,加上這個注解就是告訴springMVC不要用視圖解析,把接收的信息當成字符串解析 public User ajaxReturnJson(){System.out.println("controller return json pojo...");User user = new User();user.setName("Jockme");user.setAge(40);return user; }方法返回值為List時,自動封裝數(shù)據(jù)成json對象數(shù)組數(shù)據(jù)
@RequestMapping("/ajaxReturnJsonList") @ResponseBody //基于jackon技術,使用@ResponseBody注解可以將返回的保存POJO對象的集合轉成json數(shù)組格式數(shù)據(jù) public List ajaxReturnJsonList(){System.out.println("controller return json list...");User user1 = new User();user1.setName("Tom");user1.setAge(3);User user2 = new User();user2.setName("Jerry");user2.setAge(5);ArrayList al = new ArrayList();al.add(user1);al.add(user2);return al; }異步請求-跨域訪問:
當通過域名A下的操作訪問域名B下的資源時,不同服務間(不同的域)的訪問就是稱為跨域訪問,跨域訪問時要加上@CrossOrigin注解,否則會出現(xiàn)無法訪問的現(xiàn)象(也就是A服務訪問的還是A服務,B服務訪問的還是B服務,跨域要做到的是,不同服務訪問的資源路徑是一樣的)
怎么才算兩個不同的域,下面三條只要有一個不同就算是跨域
跨域環(huán)境搭建:
為當前主機添加備用域名
- 修改本機的hosts文件
- 格式: ip 域名(注意本機地址和域名間是有個空格的哈)
- 例:127.0.0.1 www.itzhuzhu.com
動態(tài)刷新DNS
- 命令: ipconfig /displaydns
- 命令: ipconfig /flushdns
跨域訪問支持:
- 名稱: @CrossOrigin
- 類型: 方法注解 、 類注解
- 位置:處理器類中的方法上方 或 類上方
- 作用:設置當前處理器方法/處理器類中所有方法支持跨域訪問
總結
以上是生活随笔為你收集整理的SpringMVC中的异步请求-跨域访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职称计算机word模拟题,2017年职称
- 下一篇: java注解开发