跨域一直是个很玄学的问题,SSM的时候又得前后端一起配置,sb的时候又不用。
- 前端
axios普通get请求
submitForm() {
var v=this;
this.$axios({
method: 'get',
url: api.base_url+'/user/login',
}).then(function(res){
var json = res.data;
console.log(json);
v.$store.commit('ADD_COUNT', json.data.token);
v.$message('登录成功');
}).catch(function(err){
v.$message('密码或用户名错误');
})
}
- 后端
加一个配置类
package com.zxc.ticketsys.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.concurrent.ConcurrentTaskExecutor;
import org.springframework.web.servlet.config.annotation.AsyncSupportConfigurer;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.util.concurrent.Executors;
/**
* 跨域请求支持
*/
@Configuration
public class WebConfiguration extends WebMvcConfigurationSupport {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedHeaders("*")
.allowedMethods("*")
.allowedOrigins("*");
}
@Override
protected void configureAsyncSupport(AsyncSupportConfigurer configurer){
configurer.setTaskExecutor(new ConcurrentTaskExecutor(Executors.newFixedThreadPool(3)));
configurer.setDefaultTimeout(30000);
}
}