No' Access-Control-Allow-Origin'标题Vue / Spring启动

时间:2018-04-15 03:45:40

标签: java spring vue.js cross-domain access-control

我似乎无法弄清楚这个错误" No' Access-Control-Allow-Origin'报头&#34 ;.

我有一个在localhost上运行的Vue前端:8080和spring backend在locahost上生成JWT令牌:8082

在尝试将凭据发布到我的/ signin时,我一直都会遇到此错误。我在Spring控制器上尝试了@CrossOrigin("http://localhost:8080"),在SecurityConfig中尝试了CorsConfigurationSource全局bean。 以下是使用axios的登录帖子的Vue代码:

    login(context, creds, redirect) {
    var headers = {
      'Content-Type': 'application/json',
      'Access-Control-Allow-Origin': '*'
      }
    axios.post(LOGIN_URL, '{"username": "name", "password": 
    "pass"}', headers)
    .then(function(response){
        console.log(response)
        this.user.authenticated = true
     }).catch(function (error) {
        console.log(error);
     });
     },

我的登录页面需要{"用户名":"名称","密码":"传递"},我有一个登录信息在登录时传递用户名和密码的页面,但正在消除可能的原因,因此我将其硬编码以便在上面的代码中进行测试。

最后我尝试过使用chrome CORS插件来消除错误,但仍然返回403.一切都在postman中完美。

1 个答案:

答案 0 :(得分:0)

Foundout @CrossOrigin(origins = "*", allowedHeaders = "*")只适用于我的api,这很奇怪。但是通过添加这个全局方法:

 @Bean
 public WebMvcConfigurer corsConfigurer() {
   return new WebMvcConfigurerAdapter() {
     @Override
     public void addCorsMappings(CorsRegistry registry) {
   registry.addMapping("/**").allowedOrigins("http://localhost:8080");
         }
       };
}

之前的问题是,最后没有.allowedOrigins它不会起作用。