跨域一直是个很玄学的问题,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);
    }
}