跨域的设置如下面代码
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
//.allowedOrigins("http://192.168.0.120:8070", "null") // 这里是页面调用的地址
.allowedOrigins("*", "null")
.allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
.maxAge(3600)
.allowedHeaders("*")
//.exposedHeaders("Authorization", "X-Frame-Options")
//.allowedHeaders("Content-Type", "application/json; charset=utf-8") // post 提交的时候415错误前端的数据格式一致
.allowCredentials(true);
}
}
java 的服务端代码如下:
@RequestMapping(value = "/in",method = RequestMethod.POST)
public String getIndex( String id , String name){ //服务器端加
String str = id +name;
logger.info(str+"---77777777777777777777------------------");
return str;
}
我通过ajax可以跨域调用成功,参数传递正常。
但是用vue调用就出错,不管怎么调试,参数总是null ,后来折腾好久。最终确定是vue方面出的问题,
vue调用的get请求头为: 'Content-Type': 'application/json' 可以正常调用
但是post的时候,就报错参数一直为null, 后来用 'Content-Type': 'application/json' 这请求头
同时 js传递参数要序列化,然后问题解决