前端是vue2.0七兜,網(wǎng)絡(luò)請求用的是axios丸凭,后端是springboot2.0
用axios向后端發(fā)送post請求,結(jié)果得到一個403無權(quán)限的錯誤腕铸,莫名其妙啊惜犀,我明明發(fā)送的是post請,但在chrome的調(diào)試?yán)锟吹降膮s是options狠裹。
options.png
cors.png
403.png
意思就是跨域請求無權(quán)限了虽界。
在segmentfault網(wǎng)站上,這位仁兄的解釋非常正確
網(wǎng)友的解釋.png
解釋的鏈接地址:https://segmentfault.com/q/1010000008292792
到這里涛菠,只要在后端設(shè)置options響應(yīng)支持即可莉御!
后端代碼如下
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@SpringBootApplication
public class Starter {
public static void main(String[] args) {
SpringApplication.run(Starter.class, args);
}
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
System.out.println("=============== 設(shè)置跨域過濾器 ================");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}