springboot跨網域設定

來源:互聯網
上載者:User

標籤:技術分享   rgs   over   title   xtend   cti   vat   filter   UNC   

  關於什麼是跨域的問題,感興趣的同學可以看阮一峰老師的日誌 http://www.ruanyifeng.com/blog/2016/04/cors.html。

  下面貼出我在springboot項目中的跨網域設定。

  1、CorsConfig

package com.example.demo;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBasedCorsConfigurationSource;import org.springframework.web.filter.CorsFilter;@Configurationpublic class CorsConfig {    private CorsConfiguration buildConfig() {        CorsConfiguration corsConfiguration = new CorsConfiguration();        corsConfiguration.addAllowedOrigin("*"); // 1 設定訪問源地址        corsConfiguration.addAllowedHeader("*"); // 2 設定訪問源要求標頭        corsConfiguration.addAllowedMethod("*"); // 3 設定訪問源要求方法        return corsConfiguration;    }    @Bean    public CorsFilter corsFilter() {        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();        source.registerCorsConfiguration("/**", buildConfig()); // 4 對介面配置跨網域設定        return new CorsFilter(source);    }}

  2、CorsQusetionApplication

package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.builder.SpringApplicationBuilder;import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RestController;@SpringBootApplication@RestControllerpublic class CorsQusetionApplication extends SpringBootServletInitializer{@Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(CorsQusetionApplication.class);    }public static void main(String[] args) {SpringApplication.run(CorsQusetionApplication.class, args);}@GetMapping("/get")public Object getMethod() {return "Stirng";}}

  3、測試網頁

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title><script src="jquery-1.7.2.min.js"></script><script type="text/javascript">function crosRequest(){$.ajax({url:‘http://localhost:8080/get‘,type:‘get‘,dataType:‘text‘,success:function(data){alert(data);}});}</script></head><body><button onclick="crosRequest()">請求跨域資源</button></body></html>

  pom檔案添加上web啟動包即可,啟動項目,將測試網頁test.html在電腦中任意位置放置,用瀏覽器開啟,可以正常響應

  注釋掉cors配置,重新啟動項目,將測試網頁test.html在電腦中任意位置放置,用瀏覽器開啟,開啟開發工具,發現控制台報錯

springboot跨網域設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.