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

SpringBoot跨域Jsonp和Cors的方法

 更新時(shí)間:2019年08月29日 11:32:35   作者:994🍔  
這篇文章主要介紹了SpringBoot跨域Jsonp和Cors的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

有一次我的項(xiàng)目中采用了前后端分離的模式,引起了跨域問(wèn)題,本文將介紹我所采用的跨域解決方法。

首先要了解產(chǎn)生跨域的本質(zhì),也就是同源策略的限制,源是指域名、端口號(hào)、協(xié)議,有一者不相同將被瀏覽器拒絕接受響應(yīng)信息,(請(qǐng)求可以發(fā)送出去,但是瀏覽器不接受響應(yīng))。

解決方法:

1. jsonp

jsonp的原理的 src="" 屬性不受同源策略的限制,動(dòng)態(tài)創(chuàng)建一個(gè)callback回調(diào)函數(shù),服務(wù)器調(diào)用回調(diào)函數(shù)把數(shù)據(jù)放進(jìn)去,具體的細(xì)節(jié)打算以后做一個(gè)專門講解。

這里給一個(gè)模版:

$.ajax({
     type: "get",        //jsonp只能使用get
     async: false,
     url: ""
     dataType: "jsonp",
     jsonp: "callback",    
     jsonpCallback:"message",    //注意這里給回調(diào)函數(shù)起的名字
       success: function(json){
       
      }
    })

如果這里你的回調(diào)函數(shù)起名為message,那么你在后端返回json的時(shí)候,也要注意在最外面包一層message{}。

這里jsonp的確定也可以明顯的看出,只支持get請(qǐng)求,原因就是因?yàn)橥ㄟ^(guò)src=“”發(fā)送請(qǐng)求,所以可以知道是url傳參。

那么jsonp的好處是什么呢,兼容性,幾乎所有瀏覽器都支持(包括一些版本比較老的),不需要XMLHttpRequest或ActiveX的支持。

2. cors

又稱跨域訪問(wèn),瀏覽器將cors請(qǐng)求分為簡(jiǎn)單請(qǐng)求和非簡(jiǎn)單請(qǐng)求,因?yàn)楸疚闹饕v解具體的方法,所以關(guān)于細(xì)節(jié)部分有興趣可以去看其他博客或者我以后再做一篇具體的講解(和jsonp一起)。在springboot中,官方已經(jīng)提供了支持。直接貼代碼:

方式一:全局定義

@Configuration
public class CorsConfig implements WebMvcConfigurer {
  private CorsConfiguration buildConfig() {
    CorsConfiguration corsConfiguration = new CorsConfiguration();
    List<String> list = new ArrayList<>();
    list.add("*");
    corsConfiguration.setAllowedOrigins(list);
    /*
    // 請(qǐng)求常用的三種配置,*代表允許所有,當(dāng)時(shí)你也可以自定義屬性
    (比如header只能帶什么,只能是post方式等等)
    */
    corsConfiguration.addAllowedOrigin("*");  //支持的源
    corsConfiguration.addAllowedHeader("*");  //header限制
    corsConfiguration.addAllowedMethod("*");  //支持方法
    return corsConfiguration;
  }
  @Bean
  public CorsFilter corsFilter() {
    UrlBasedCorsConfigurationSource source
      = new UrlBasedCorsConfigurationSource();
    source.registerCorsConfiguration("/**", buildConfig());
    return new CorsFilter(source);
  }
}

方式二:局部定義

@CrossOrigin(origins = "*",allowCredentials="true",allowedHeaders = "",methods = {})

直接在需要跨域的方法上添加注解,不過(guò)我沒(méi)試過(guò),有興趣或者有這種方式需求的朋友可以嘗試一下。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • eclipse修改maven倉(cāng)庫(kù)位置的方法實(shí)現(xiàn)

    eclipse修改maven倉(cāng)庫(kù)位置的方法實(shí)現(xiàn)

    本文主要介紹了eclipse修改maven倉(cāng)庫(kù)位置的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤的示例代碼

    springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤的示例代碼

    這篇文章主要介紹了springboot整合dubbo設(shè)置全局唯一ID進(jìn)行日志追蹤,本文通過(guò)圖文示例相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-10-10
  • 全面解析Java8觀察者模式

    全面解析Java8觀察者模式

    這篇文章主要為大家全面解析Java8觀察者模式,通過(guò)在 Java8 環(huán)境下實(shí)現(xiàn)觀察者模式的實(shí)例,進(jìn)一步介紹了什么是觀察者模式、專業(yè)化及其命名規(guī)則,感興趣的小伙伴們可以參考一下
    2016-02-02
  • SpringBoot使用自定義注解實(shí)現(xiàn)權(quán)限攔截的示例

    SpringBoot使用自定義注解實(shí)現(xiàn)權(quán)限攔截的示例

    本篇文章主要介紹了SpringBoot使用自定義注解實(shí)現(xiàn)權(quán)限攔截的示例,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-09-09
  • Spring?boot讀取外部化配置的方法

    Spring?boot讀取外部化配置的方法

    大家好,本篇文章主要講的是Spring?boot讀取外部化配置的方法,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02
  • Java中設(shè)置JAVA_HOME無(wú)效的解決方法

    Java中設(shè)置JAVA_HOME無(wú)效的解決方法

    最近遇到一個(gè)問(wèn)題,就是配置JAVA_HOME無(wú)效,不管怎么改,運(yùn)行Java -version始終是最初的那個(gè)java版本,所以這篇文章主要給大家介紹了關(guān)于Java中設(shè)置JAVA_HOME無(wú)效的解決方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • Java連接postgresql數(shù)據(jù)庫(kù)的示例代碼

    Java連接postgresql數(shù)據(jù)庫(kù)的示例代碼

    本篇文章主要介紹了Java連接postgresql數(shù)據(jù)庫(kù)的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Spring Aop注解實(shí)現(xiàn)

    Spring Aop注解實(shí)現(xiàn)

    本文我們通過(guò)Spring AOP和Java的自定義注解來(lái)實(shí)現(xiàn)日志的插入功能,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友一起看看吧,希望對(duì)你有所幫助
    2021-07-07
  • java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說(shuō)明

    java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說(shuō)明

    這篇文章主要介紹了java字符串的替換replace、replaceAll、replaceFirst的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 認(rèn)識(shí)Java底層操作系統(tǒng)與并發(fā)基礎(chǔ)

    認(rèn)識(shí)Java底層操作系統(tǒng)與并發(fā)基礎(chǔ)

    這篇文章主要介紹了認(rèn)識(shí)Java底層操作系統(tǒng)與并發(fā)基礎(chǔ),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07

最新評(píng)論

昭觉县| 天等县| 马尔康县| 南漳县| 延寿县| 江北区| 永济市| 饶阳县| 稷山县| 米林县| 柳州市| 张家港市| 阳西县| 沛县| 大名县| 贵定县| 望城县| 涿鹿县| 涟源市| 乐东| 郯城县| 虹口区| 涿州市| 浠水县| 湘潭县| 多伦县| 南郑县| 辉县市| 丰宁| 富民县| 屯留县| 梅河口市| 安义县| 吉林市| 辽源市| 松江区| 通化县| 藁城市| 西乌珠穆沁旗| 渭南市| 临桂县|