如何通过axios正确调用另一个docker容器?

如何通过axios正确调用另一个docker容器?,docker,docker-compose,network-programming,Docker,Docker Compose,Network Programming,因此,我目前正在构建一个带有RESTAPI和独立前端的docker设置。我的后端由Symfony 5.2.6作为REST API组成,我的前端是一个简单的Vue应用程序 当我试图通过localhost或127.0.0.1从vue应用程序调用API时,我收到一个“连接被拒绝”错误。当我试图通过服务器的外部IP调用API时,我遇到了CORS问题。这是我第一次这样做,所以我有点不知所措 这是我的docker设置: version: "3.8" services: # VUE-

因此,我目前正在构建一个带有RESTAPI和独立前端的docker设置。我的后端由Symfony 5.2.6作为REST API组成,我的前端是一个简单的Vue应用程序

当我试图通过
localhost
127.0.0.1
从vue应用程序调用API时,我收到一个“连接被拒绝”错误。当我试图通过服务器的外部IP调用API时,我遇到了CORS问题。这是我第一次这样做,所以我有点不知所措

这是我的docker设置:

version: "3.8"

services:
  # VUE-JS Instance
  client:
    build: client
    restart: always
    logging:
      driver: none
    volumes:
      - ./client:/app
      - /app/node_modules
    environment:
      - CHOKIDAR_USEPOLLING=true
      - NODE_ENV=development
    ports:
      - 8080:8080

  # SERVER
  php:
    build: php-fpm
    restart: always
    ports:
      - "9002:9000"
    volumes:
      - ./server:/var/www/:cached
      - ./logs/symfony:/var/www/var/logs:cached

  # WEBSERVER
  nginx:
    build: nginx
    restart: always
    ports:
      - "80:80"
    volumes_from:
      - php
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
      - ./logs/nginx/:/var/log/nginx:cached

那么,在这两个容器之间建立连接的正确方法是什么呢?

客户端应用程序在端口8080上运行,但80上的nginx是不同的URL,应该是CORS错误。
为了避免这种情况,在PHP应用程序中,您必须添加响应头:
访问控制允许原点:http://localhost:8080

访问控制允许原点:


另一个解决方案是在同一个端口上配置一个域中的所有端口。

您到底在调用什么URL?您从何处调用它(nginx容器中的
proxy\u pass
指令,在浏览器中的Vue应用程序中运行的代码,完全是另一台主机)?这是我在Vue组件中提交表单时执行的axios POST请求。我基本上就是打电话<代码>127.0.0.1/api/user/login。