標籤:技術分享 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跨網域設定