成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

SpringBoot跨域Jsonp和Cors的方法

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

10年積累的做網(wǎng)站、網(wǎng)站設(shè)計(jì)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶(hù)對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶(hù)得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先建設(shè)網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有寧河免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

首先要了解產(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è)專(zhuān)門(mén)講解。

這里給一個(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

又稱(chēng)跨域訪(fǎng)問(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í)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

本文題目:SpringBoot跨域Jsonp和Cors的方法
網(wǎng)站URL:http://jinyejixie.com/article40/joheho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、靜態(tài)網(wǎng)站網(wǎng)站營(yíng)銷(xiāo)網(wǎng)站制作、網(wǎng)站收錄、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)
深水埗区| 东城区| 新晃| 隆林| 周至县| 墨脱县| 汉源县| 高要市| 商水县| 顺平县| 达州市| 郧西县| 绥棱县| 绥江县| 庄河市| 金沙县| 农安县| 腾冲县| 太仆寺旗| 曲沃县| 阆中市| 乌拉特前旗| 天祝| 泌阳县| 禹州市| 冕宁县| 镇雄县| 策勒县| 海原县| 娱乐| 铁岭县| 咸宁市| 揭阳市| 阳东县| 德化县| 福安市| 库伦旗| 呼图壁县| 大安市| 历史| 武冈市|