最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解java 中Spring jsonp 跨域請求的實例

 更新時間:2017年08月16日 09:41:00   作者:hpgary  
這篇文章主要介紹了詳解java 中Spring jsonp 跨域請求的實例的相關(guān)資料,jsonp 可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題,需要的朋友可以參考下

詳解java 中Spring jsonp 跨域請求的實例

jsonp介紹

       JSONP(JSON with Padding)是JSON的一種“使用模式”,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。由于同源策略,一般來說位于 server1.example.com 的網(wǎng)頁無法與不是 server1.example.com的服務(wù)器溝通,而 HTML 的<script> 元素是一個例外。利用 <script> 元素的這個開放策略,網(wǎng)頁可以得到從其他來源動態(tài)產(chǎn)生的 JSON 資料,而這種使用模式就是所謂的 JSONP。用 JSONP 抓到的資料并不是 JSON,而是任意的JavaScript,用 JavaScript 直譯器執(zhí)行而不是用 JSON 解析器解。
0、引入jar包

<dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-jersey</artifactId> 
    </dependency> 
 
    <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
 

其他介紹就不多說了,開始上手吧。

1、繼承AbstractJsonpResponseBodyAdvice類JsonpAdvice,并加上@RestControllerAdvice注解 

/*RestControllerAdvice的值指定攔截的包名*/ 
@RestControllerAdvice("com.ctrl") 
public class JsonpAdvice extends AbstractJsonpResponseBodyAdvice { 
 
  public JsonpAdvice() { 
    super("callback", "jsonp"); 
        /*callback是url請求攔截的參數(shù)名,如果攔截成功會將返回數(shù)據(jù)傳入函數(shù)執(zhí)行回調(diào)函數(shù)*/ 
  } 
   
} 

 2、創(chuàng)建ctrl類

package com.ctrl; 
 
import java.util.HashMap; 
import java.util.Map; 
import javax.servlet.http.HttpServletRequest; 
 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
@RestController 
public class HelloCtrl { 
   
  @RequestMapping("/hello") 
  public Map<String,Object> hello(HttpServletRequest request){ 
    Map<String,Object>data = new HashMap<String,Object>(); 
    data.put("suc", true); 
    data.put("msg", "save suc"); 
         data.put("param", request.getParameter("a") + "==" + request.getParameter("d")); 
    return data ; 
  } 
} 

 4、創(chuàng)建啟動app類: 

package com.services; 
 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
 
@SpringBootApplication(scanBasePackages="com") 
public class App { 
   
  public static void main(String[] args) { 
    SpringApplication.run(App.class, args); 
     
  } 
} 

 5、前端調(diào)用:

<!DOCTYPE html> 
<html> 
<head> 
 
<title>jquery跨域?qū)嵗?lt;/title> 
<!-- jquery版本可以不是3.2.1版本的 --> 
<script type="text/javascript" src="jquery-3.2.1.js"></script> 
<script type="text/javascript"> 
  $(function() { 
        /* 這是快捷調(diào)用,callback 是advice中設(shè)置的,?是保留參數(shù), 
        jquery會替換掉這個問號 url可是不同于請求地址的任何url*/ 
    $.getJSON("/hello?callback=?", function(data) { 
      //$("#showcontent").text("Result:" + data) 
    });  
    /*使用ajax方法調(diào)用*/ 
    $.ajax({ 
      type : "get", 
      async : false, 
      url : "/hello", 
      dataType : "jsonp",//數(shù)據(jù)類型為jsonp  
      data:{a:"b",d:"c"}, 
      type:"POST", 
      jsonp : "callback",//服務(wù)端用于接收callback調(diào)用的function名的參數(shù)  
      success : function(data) { 
        $("#showcontent").text("Result:" + data.suc + " requestParam:" + data.param ) 
      },  
      error : function() { 
        alert('fail'); 
      } 
    }); 
  }) 
</script> 
</head> 
<body> 
  <div id="showcontent"></div> 
</body> 
</html> 

  服務(wù)器端也不一定要用spring 任何技術(shù)都可以,只要返回格式是下面的格式就可以,調(diào)用一個哈桑農(nóng)戶,出傳入一個json或者是字符串就可以了。

/**/test01({"suc":true,"msg":"save suc"}); 

 直接訪問返回數(shù)據(jù):

 

以上使用關(guān)于java 中Spring jsonp 跨域請求的實例詳解,如有疑問請留言或者到本站社區(qū)交流討論, 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié))

    Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié))

    這篇文章主要介紹了Java程序員編程性能優(yōu)化必備的34個小技巧(總結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-07-07
  • Mybatis中攔截器的使用場景和技巧分享

    Mybatis中攔截器的使用場景和技巧分享

    Mybatis提供了一些機制,可以允許我們在做數(shù)據(jù)庫操作的時候進行我們額外的一些程序,當(dāng)然,這看起來并沒有JPA的EntityListener好用,本文小編將給大家詳細的介紹了Mybatis中攔截器的使用場景和技巧,需要的朋友可以參考下
    2023-10-10
  • Java二分查找算法實例詳解

    Java二分查找算法實例詳解

    在本篇文章里小編給大家分享總結(jié)的是一篇關(guān)于Java二分查找算法實例詳解內(nèi)容,對此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2022-11-11
  • Java中泛型學(xué)習(xí)之細節(jié)篇

    Java中泛型學(xué)習(xí)之細節(jié)篇

    泛型在java中有很重要的地位,在面向?qū)ο缶幊碳案鞣N設(shè)計模式中有非常廣泛的應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Java中泛型細節(jié)的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • Mybatis?saveAndUpdate空值不更新問題及解決

    Mybatis?saveAndUpdate空值不更新問題及解決

    這篇文章主要介紹了Mybatis?saveAndUpdate空值不更新問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法

    Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法

    這篇文章主要介紹了Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法,本文使用apache-commons-net工具包時遇到這個問題,解決方法很簡單,需要的朋友可以參考下
    2015-05-05
  • 一文秒懂logstash收集springboot日志的方法

    一文秒懂logstash收集springboot日志的方法

    通過這篇文章帶你了解logstash收集springboot日志的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • java設(shè)計模式之簡單工廠模式簡述

    java設(shè)計模式之簡單工廠模式簡述

    這篇文章主要為大家詳細介紹了java設(shè)計模式之簡單工廠模式,簡單工廠模式的實質(zhì)是由一個工廠類根據(jù)傳入的參數(shù),動態(tài)決定應(yīng)該創(chuàng)建哪一個產(chǎn)品類的實例,感興趣的小伙伴們可以參考一下
    2016-08-08
  • 詳解Java如何關(guān)閉線程以及線程池

    詳解Java如何關(guān)閉線程以及線程池

    java如何正確關(guān)閉線程以及線程池是一個高頻的面試題,本文將為大家詳細介紹實現(xiàn)的方法與代碼,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • 解決Request獲取請求數(shù)據(jù)中文亂碼問題

    解決Request獲取請求數(shù)據(jù)中文亂碼問題

    這篇文章主要介紹了Request獲取請求數(shù)據(jù)中文亂碼問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07

最新評論

林芝县| 通山县| 鄂州市| 乌兰察布市| 都兰县| 新建县| 驻马店市| 石阡县| 定兴县| 江源县| 通山县| 三台县| 兖州市| 稻城县| 雅江县| 阳西县| 乐安县| 东方市| 桃江县| 鲁山县| 罗源县| 安新县| 云南省| 普宁市| 巴彦淖尔市| 公安县| 开化县| 托克托县| 平谷区| 韩城市| 县级市| 海宁市| 凤庆县| 德化县| 巴马| 衡东县| 四平市| 惠来县| 沁源县| 平原县| 江孜县|