微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – 使用Docker容器进行前端和后端时CORS失败

以下代码在docker容器外工作得很好.现在我想为后端添加一个容器,为后端添加一个容器.所以我创建了两个Dockerfiles(可能是无趣的)和下面的docker-compose文件.我将axios.get(‘http://127.0.0.1:5000/api/test’)更改为vue组件中的axios.get(‘http:// backend:80 / api / test’).我能够从前端容器ping后端容器,我能够通过curl接收api结果.
但是axios再也无法提出这个api请求了.在firefox控制台中我收到错误

Error: "Network Error"
Cross-Origin request blocked [...] Reason: CORS request did not succeed

但我能够在我的网络中的一台计算机和另一台计算机的前端运行docker之外的后端.所以Cross-Origin在docker之外没问题.
这有什么问题?我不知道.

泊坞窗,compose.yml

version: '2'
services:
    backend:
        build: ./backend
        container_name: backend
        ports:
          - "80:80"
        environment:
          - FLASK_APP=app/main.py
          - FLASK_DEBUG=1
          - 'RUN=flask run --host=0.0.0.0 --port=80'
        networks:
          - some-net

    frontend:
        build: ./frontend
        container_name: frontend
        ports:
          - "90:80"
        networks:
          - some-net

networks:
    some-net:
        driver: bridge

原始代码

python中的后端

from flask import Flask,jsonify
from flask_cors import CORS

app = Flask(__name__)
CORS(app,resources=r'/api/*')

@app.route('/api/test')
def test():
    return jsonify({
        "foo": "bar"
    })

if __name__ == '__main__':
    app.run(debug=True)

frondend(仅限vue.js组件)

coped" attribute to limit CSS to this component only -->