如何在apache中从角度调用spring boot api

Posted

技术标签:

【中文标题】如何在apache中从角度调用spring boot api【英文标题】:how to call spring boot api from angular in apache 【发布时间】:2019-12-06 14:51:10 【问题描述】:

我想从我的角度文件中调用 spring boot 中的 api 例如:profile.service.ts

  private baseUrl = '/users';
  constructor(private http: HttpClient) 
  
  getProfile(id: number): Observable<Object> 
    return this.http.get(`$this.baseUrl` + '/load/' + `$id`);
  

java 文件是:UsersController.java

@RestController
@RequestMapping("/users")
public class UsersController 
    @Autowired
    private IUsersService iUsersService;

    @GetMapping("/list/grid")
    public Iterable<UsersViewModel> getAllEmployees() 
        return Dozer.mapList(iUsersService.getAll(), UsersViewModel.class);
    

    @GetMapping("/load/id")
    public UsersViewModel getUserById(@PathVariable(value = "id") Long userId)
        return Dozer.mapClass(iUsersService.findById(userId).get(),UsersViewModel.class);
    

Angular 使用的服务器是 Apache,spring-boot 端口是 8090。 请帮帮我。

【问题讨论】:

【参考方案1】:

你快到了。

@RestController
@CrossOrigin(origins = "http://localhost:4200")
public class UsersController 
...

这里唯一值得注意的实现细节是@CrossOrigin 注释的使用。顾名思义,注解在服务器上启用了跨域资源共享(CORS)。

这一步并不总是必要的。由于我们将 Angular 前端部署到 http://localhost:4200 并将 Boot 后端部署到 http://localhost:8090,否则浏览器将拒绝从一个到另一个的请求。

推荐:https://www.baeldung.com/spring-boot-angular-web

【讨论】:

@seyedaliziaei 酷。您面临的问题是什么?检查日志。可能是CORS问题。如果是 CORS,@CrossOrigin 将帮助解决。 @seyedaliziaei 你所说的全球是什么意思?你在找这个***.com/questions/37980914/… 请帮助我。 crossorigin 适用于端口 4200,但在构建 Angular 以在服务器中使用时不适用于端口 80 @seyedaliziaei 如果您使用默认的 Apache 80 端口,则 URL 将是 http://localhost 没有特定端口(因为 http 默认端口是 80)。在其他端口上配置 Apache。为了获得 Access-Control-Allow-Origin 权限,您需要一个有效的端口和 URL,如 http://domain:port/ 来执行此操作。更多信息请参考digitalocean.com/community/questions/…

以上是关于如何在apache中从角度调用spring boot api的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot 应用程序中从 Api 网关(Zuul)调用外部服务(非 MSA)

是否可以在 Spring 中从非事务方法调用事务方法?

在spring mvc中从ajax调用jasperreport时出现解析器错误

在 Spring Boot 应用程序中从 Angular JS 调用 Rest Services 时出错

如何在 Blender 中从不同的摄像机角度渲染 3d 模型的不同贴图(漫反射、深度、镜面反射、阴影)?

在 Spring Boot 中从 Angular 向后端发送 post 请求中的对象的问题