跨域问题报错:
解决跨域问题还是要后端去解决的,查看资料注解@CrossOrigin(origins="*",maxAge=3600)可以简单快捷的解决跨域问题,但我测试不生效不知道为什么。然后还是直接采用我最老套的方式,类似这种:
package com.avic.framework.config;
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;
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
corsConfiguration.setMaxAge(3600L);
source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
return new CorsFilter(source);
}
}
验证跨域是否生效的方式:
在随便一个网页中F12打开调试工具DevTools,在控制台下粘贴如下代码(url为测试跨域的地址):
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://127.0.0.1:9993/ceshi');
xhr.send(null);
xhr.onload = function(e) {
var xhr = e.target;
console.log(xhr.responseText);
}
Enter回车!
只要返回的不是报错信息,跨域问题就是已经解决了!