有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无“AccessControlAllowOrigin”标头Vue/Spring启动

我似乎无法理解这个错误“No‘Access Control Allow Origin’header”

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

在尝试将凭据发布到my/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);
     });
     },

我的登录页面采用{“username”:“name”,“password”:“pass”},我有一个登录页面,在按登录键时传递用户名和密码,但消除了可能的原因,所以我在上面的代码中对其进行了硬编码以供测试

最后,我尝试了ChromeCors插件,该插件消除了错误,但仍然返回403。《邮差》里的一切都很完美


共 (1) 个答案

  1. # 1 楼答案

    Foundout@CrossOrigin(origins = "*", allowedHeaders = "*")只在我的api内部工作,这很奇怪。但通过加入此全局方法:

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

    我以前的问题是没有。最后,这是行不通的