尝试获取资源时出现网络错误

时间:2020-05-11 14:11:30

标签: javascript rest google-app-engine heroku cors

您好,开发人员和数据科学家。我有一个关于从Heroku上部署的javascript应用访问google应用引擎上部署的API的问题。

当我访问Google chrome上的API链接时,它可以正常工作。但是,当我使用部署在Heroku上的javascript应用程序调用我的API链接时,有时无法正常工作,并向我返回网络错误。 CORS error

我已按照“ https://cloud.google.com/appengine/docs/standard/python3/config/appref”上的说明进行操作,以使我的应用程序API可以在Google App Engine上的app.ymal文件中对我的应用程序API进行CORS访问,如下所示

运行时:python37instance_class:F4_1Ghandlers: -网址:/ images static_dir:静态/图片 http_headers: Access-Control-Allow-Origin:“ *”

类似地,我还对部署在Heroku上的javascript应用程序(React)启用了CORS访问,如下图所示。 CORS enabled on Heroku但是,问题仍然存在。我不确定这是否与我们设置代码或Google App Engine服务器本身的方式有关。如果除了我能做的以外我还能做些什么,我也很想听听。非常感谢!

1 个答案:

答案 0 :(得分:0)

Google云文档(CORS Support)中列出的说明仅适用于静态资产(例如图片)。但是,如果要调用API(由动态页面(如Python脚本)组成),则必须在Python端进行配置,方法是从脚本中发送适当的标头。这是一个有关如何使用名为Flask-CORS的Flask扩展名进行操作的示例:

from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
cors = CORS(app, resources={r"/api/*": {"origins": "*"}})

@app.route("/api/v1/users")
def list_users():
  return "user example"

在您自己的脚本上执行此操作的方式实际上取决于您的实现。