express - 如何在 Google App Engine 中允许跨站点来源请求?

我有一个使用 Express 制作的简单 API,它返回 json。 Express 服务器在 Google App Engine 上运行。我正在使用 cors ( https://www.npmjs.com/package/cors ) 启用所有 CORS 请求,但我仍然收到“请求的资源上不存在‘Access-Control-Allow-Origin’ header ”。当从 SPA 应用程序执行 AJAX 请求时。

app.use(cors())

根据文档,上面的默认设置是: { “起源”: ”*”, “方法”:“GET,HEAD,PUT,PATCH,POST,DELETE”, “预检继续”:假, “选项成功状态”:204 }

这应该足够了,因为我只是从我的 SPA 执行一个简单的 GET 请求。

有什么想法吗?

最佳答案

我真的对文档感到困惑,因为它暗示 CORS header 只能在提供静态内容时发送,而不是更常见的情况,即 CORS 告诉浏览器在调用时可以从后端接受 JSON 或 XML第三方托管脚本。

我的解决方法是仅将其作为应用本身内的自定义 header 返回。例如,对于 Flask:

from flask import Flask, jsonify
app = Flask(__name__)
@app.route("/")
def root():
     import traceback
     try:
         data = {'key1': "value1", 'key2': "value2"}
         return jsonify(data), 200, {'Access-Control-Allow-Origin': "*"}
     except:
         return format(traceback.format_exc()), 500,  {'Content-Type': "text/plain"}

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

https://stackoverflow.com/questions/55958440/

相关文章:

javascript - 使用 cheerio 在两个标签之间进行网页抓取

angular - 重新分配通过异步管道使用的 Observable

continuous-integration - 如何在 1 个作业中定义 2 个具有不同 when

c# - 为什么 IServerStreamWriter 不发送通知响应?

amazon-web-services - CloudFormation 无法创建 CodeDepl

reactjs - VSCode 不会在 typescript 中导入 组件

php - 电子商务 : how to display custom success notice

python-3.x - aiohttp异步请求的任务异常

azure-active-directory - Azure B2C 访问 token 缺少 ten

sql - 从 SQL Server 到 Oracle 使用点表示法与 OpenQuery