当前位置: 首页 > 知识库问答 >
问题:

角Spring引导:重定向错误:请求头字段Content-Type不被预飞行响应中的access-control-allog-headers所允许

萧鹏云
2023-03-14

我在前端使用Angular 6,在后端使用Java Spring Boot。

我想让我的登录页面向服务器发出请求。服务器重定向到仪表板页。

我有http://localhost:4200/login angular页面,它向服务器http://localhost:8080/login发出POST请求

onLoginClickPost() {
  console.log('redirect request clicked');
  this.data.getUserInfoPost().subscribe(
    data => {
      console.log(data);
      this.userInfo = data;
    }
  );
}

getUserInfoPost() {
    return this.http.post('http://localhost:8080/login', {nextUrl: 'http://localhost:4200/dashboard'});
}
@CrossOrigin(origins = "http://localhost:4200")
@RequestMapping(value = "/login", method = RequestMethod.POST)
public ResponseEntity<?> login_post(@RequestBody LoginReqPostParam payload) {

    HttpHeaders headers = new HttpHeaders();

    try {
        headers.setLocation(new URI(payload.getNextUrl()));
        headers.add("Access-Control-Allow-Headers", "Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
    } catch (URISyntaxException e) {
        logger.error("URI Exception: ", e);
        e.printStackTrace();
    }

    return new ResponseEntity<>(headers, HttpStatus.FOUND);
}

共有1个答案

葛阳华
2023-03-14

您正在使用@crossorigin进行POST请求,但Angular(正在开发中)正在使用选项发送飞行前请求。

我建议您使用一个允许所有起源的开发概要文件(您必须在Bean中为这些概要文件创建一个自定义过滤器)

 类似资料: