![](/img/trans.png)
[英]How to configure Content-Security-Policy of Helmet package in express to allow cross site iframe and cross site scripting?
[英]How to allow cross site origin requests in Google App Engine?
我有一個用 Express 制作的簡單 API,它返回 json。 Express 服務器在 Google App Engine 上運行。 我正在使用 cors ( https://www.npmjs.com/package/cors ) 來啟用所有 CORS 請求,但我仍然收到“請求的資源上不存在‘Access-Control-Allow-Origin’標頭。 ” 從 SPA 應用程序執行 AJAX 請求時。
app.use(cors())
根據文檔,上述默認設置為: { "origin": "*", "methods": "GET,HEAD,PUT,PATCH,POST,DELETE", "preflightContinue": false, "optionsSuccessStatus": 204 }
這應該足夠了,因為我只是從我的 SPA 中執行一個簡單的 GET 請求。
有任何想法嗎?
我真的對文檔感到困惑,因為它意味着 CORS 標頭只能在提供靜態內容時發送,而不是更常見的場景,即 CORS 告訴瀏覽器在通過第三方調用時可以接受來自后端的 JSON 或 XML -派對托管腳本。
我的解決方法是將它作為應用程序本身中的自定義標頭返回。 例如,使用燒瓶:
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()
App Engine 通過此處提到的app.yaml文件支持 CORS: 鏈接
在app.yaml文件中,通過添加http_headers
元素來修改handlers
部分,如下所示:
handlers:
- url: /images
static_dir: static/images
http_headers:
Access-Control-Allow-Origin: '*'
# ...
之后,您可以重新部署 App Engine 以應用配置更改。
正如我在這里回答的那樣, https://stackoverflow.com/a/62075272/2235936
app.yaml 中不需要那些handlers
東西,只需在 G 存儲桶上設置 CORS。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.