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

连接AWS放大前端到AWS弹性豆茎后端时的CORS问题

黄和怡
2023-03-14

背景:我的应用程序前端(Vue)部署在AWS Amplify上,后端(Python)部署在AWS Elastic Beanstalk上。我的前端通过Axios连接到后端。

问题:当从前端向后端发送数据时,我得到一个CORS错误,从源'***'访问位于'***'处的XMLHttpRequest已被CORS策略阻止:请求的资源上没有'Access-Control-Allow-Origin'标头。

当我的前端向本地主机发送数据时,没有问题,所以我不认为这是我的代码的问题。我需要改变弹性豆茎配置吗?

我不确定我需要包含什么代码才能得到一个正确的答案,所以请让我知道你想看到什么,我可以适当地更新这个问题。我已经在下面添加了我的application.py代码,目前正在使用Flask-CORS。

from flask import Flask, render_template
from flask import request, session
from flask_cors import CORS
import os
from common.api import api
from journal_blueprint import journal_blueprint
from manuscript_blueprint import manuscript_blueprint
from user_blueprint import user_blueprint
from models.decorators import requires_login
from models.user import User
from models.manuscript import Manuscript
from models.journal import Journal
from config_file import BaseConfig

application=Flask(__name__)

application.secret_key = BaseConfig.SECRET_KEY
application.config['SQLALCHEMY_DATABASE_URI'] = os.environ["DATABASE_URL"]

CORS(application)

application.register_blueprint(journal_blueprint, url_prefix='/journal')
application.register_blueprint(user_blueprint, url_prefix='/user')
application.register_blueprint(manuscript_blueprint, url_prefix='/manuscript')
application.register_blueprint(api, url_prefix="/api")


@application.route('/')
def home_template():
    return render_template('index.html')


@application.route('/login')
def login_template():
    return render_template('user/login.html')


@application.route('/register')
def register_template():
    return render_template('user/register.html')


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

共有1个答案

红砚文
2023-03-14

你的配置看起来不错。请在elasticbeantalk日志中查找错误。应用程序可能会在elasticbeanstalk环境中抛出一些错误,在此期间不会返回CORS头。

 类似资料:
  • 配置验证异常:AWS Elastic Beanstatk无法与Amazon EC2通信以确定是否为Elastic Load均衡创建自定义安全组。 在创建AWS Elastic Beanstalk应用程序时,我在尝试继续“查看和启动”时遇到了这个错误。我是新手。请帮忙。

  • 我是AWS的新手,这个问题似乎很基本。然而,我需要看看我是否能找到解决方案。 我首先创建并启动了一个 EC2 实例,然后创建了一个弹性 Beanstalk 实例,并在该实例上部署了一个示例应用程序。默认情况下,弹性 Beanstalk 会将“默认环境”附加到此实例,我无法将其更改为我的 EC2 实例。如何将我的 EC2 实例(我之前创建的实例)附加到此弹性豆茎实例?我正在使用亚马逊免费套餐来学习。

  • 我有一个用Angular编写的UI应用程序,它有一个在NodeJS中运行的后端。我还有另外两个将从NodeJS后端调用的服务。这些应用程序运行在docker容器中,并部署到AWS中的Kubernetes集群中。 流程是这样的: 我尝试创建一个AWS API网关,它指向Angular UI的ELB IP,但它不能提供页面。 做这件事的正确方法是什么?任何帮助都是非常感谢的。

  • 我试图增加Amazon弹性Beanstalk的超时,但我仍然得到504网关超时。 以下是我目前所做的工作: 尽管如此,我仍然得到一个“504网关超时”后正好60.1秒。 我错过了什么能让它发挥作用的?

  • 我尝试创建新的环境,然后给出应用程序版本的s3桶路径,但它不起作用。(给出了一些错误,说“这只能在VPC中完成”)。

  • 我正在使用AWS弹性豆茎,并在上面部署了我的nodejs应用程序。现在,我想自动化这个过程,即提交更改到Github,然后自动反映这些变化在应用程序。现在我有两个选择,使用弹性Beanstlak还是使用代码部署。我搜索了这两个服务, > 我可以使用带有弹性豆茎的deployBot来实现自动化,或者使用jenkins插件来实现自动化(AWS弹性豆茎部署插件)来实现弹性豆茎。还找到了这个自动化链接:h