我有一个使用 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