spring boot2 (31)-cors跨域請求

假如我們開發了一些接口部署到網上,而我們的客戶也有一個網站,會通過ajax請求我們的接口,並將結果展示到他們的網站,這就是跨域。


直接請求No Access-Control-Allow-Origin

我現在192.168.112.1上啓動一個客戶項目,用jquery向接口服務器192.168.112.150:8080/test發起ajax請求

	$.ajax({
		url : 'http://192.168.112.150:8080/test',
		type : 'get',
		success : function(d) {
		}
	});

瀏覽器控制檯會報錯:No 'Access-Control-Allow-Origin' header is present on the requested。意思是該資源不允許跨域請求。

配置跨域請求

在接口服務器做以下配置,/**表示所有接口允許跨域,也可以只配置一部分接口,再次請求就不會報錯了。

@SpringBootConfiguration
public class Config implements WebMvcConfigurer{

	public void addCorsMappings(CorsRegistry registry) {
		registry.addMapping("/**");
	}
}

設置白名單

以上配置,默認所有其他服務都可以發起跨域請求,存在安全問題,修改修改可以設定只允許指定ip跨域請求

		registry.addMapping("/**")
			.allowedOrigins("http://192.168.112.1:8081");
注意:此時在瀏覽器用localhost請求html是不能跨域的,因爲這裏配的是ip,所以只認ip域名,參數中可以配多個ip。

關於WebMvcConfigurer

第19篇中我用extends WebMvcConfigurerAdapter來實現web mvc配置,這在spring boot2中已經不建議使用,而推薦使用implements WebMvcConfigurer接口的方式實現web mvc配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章