第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

啟用 CORS Google Cloud Function (Python)

啟用 CORS Google Cloud Function (Python)

弒天下 2023-09-12 16:29:29
可以flask_cors在 Google Cloud Functions 中使用嗎?app = Flask(__name__) cors = CORS(app)該flask_cors包在本地有效,但部署到云功能上時卻無效。我嘗試了很多不同的方法,正如 GCP 建議的那樣https://cloud.google.com/functions/docs/writing/http 但我仍然收到 CORS 錯誤:對預(yù)檢請求的響應(yīng)未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標(biāo)頭。
查看完整描述

5 回答

?
慕森王

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超3個贊

不可以,該app變量在 Cloud Functions 中不可用。


相反,您可以手動處理 CORS:


def cors_enabled_function(request):

? ? # For more information about CORS and CORS preflight requests, see

? ? # https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

? ? # for more information.


? ? # Set CORS headers for the preflight request

? ? if request.method == 'OPTIONS':

? ? ? ? # Allows GET requests from any origin with the Content-Type

? ? ? ? # header and caches preflight response for an 3600s

? ? ? ? headers = {

? ? ? ? ? ? 'Access-Control-Allow-Origin': '*',

? ? ? ? ? ? 'Access-Control-Allow-Methods': 'GET',

? ? ? ? ? ? 'Access-Control-Allow-Headers': 'Content-Type',

? ? ? ? ? ? 'Access-Control-Max-Age': '3600'

? ? ? ? }


? ? ? ? return ('', 204, headers)


? ? # Set CORS headers for the main request

? ? headers = {

? ? ? ? 'Access-Control-Allow-Origin': '*'

? ? }


? ? return ('Hello World!', 200, headers)

查看完整回答
反對 回復(fù) 2023-09-12
?
catspeake

TA貢獻(xiàn)1111條經(jīng)驗(yàn) 獲得超0個贊

APP云功能中沒有。您可以按照google cloud 文檔中的說明設(shè)置 CORS 標(biāo)頭,并按照在 Flask 中編寫的方式返回 JSON。

下面的示例調(diào)用了hello_world用于 post 請求的函數(shù)。它返回 的狀態(tài)和標(biāo)頭CORS。

from flask import jsonify


def hello_world(request):

? ? request_json = request.get_json()

? ? # Set CORS headers for the preflight request

? ? if request.method == 'OPTIONS':

? ? ? ? # Allows GET requests from any origin with the Content-Type

? ? ? ? # header and caches preflight response for an 3600s

? ? ? ? headers = {

? ? ? ? ? ? 'Access-Control-Allow-Origin': '*',

? ? ? ? ? ? 'Access-Control-Allow-Methods': 'POST',

? ? ? ? ? ? 'Access-Control-Allow-Headers': 'Content-Type',

? ? ? ? ? ? 'Access-Control-Max-Age': '3600'

? ? ? ? }


? ? ? ? return ('', 204, headers)


? ? # Set CORS headers for the main request

? ? headers = {

? ? ? ? 'Access-Control-Allow-Methods': 'POST',

? ? ? ? 'Access-Control-Allow-Origin': '*'

? ? }


? ?if request_json and 'labels' in request_json:

? ? ? ? # THIS IS THE PLACE YOU WRITE YOUR CODE.

? ? ? ? # AWLAYS RETURN WITH THE HEADERS AND STATUS

? ? ? ? return (jsonify({"ok": "Great Day 2"}), 200, headers)


查看完整回答
反對 回復(fù) 2023-09-12
?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個贊

如果您flask已經(jīng)在使用,那么最簡單的方法就是使用flask-cors

https://github.com/corydolphin/flask-cors

像下面這樣裝飾你的云函數(shù)就完成了。

from flask_cors import cross_origin


@cross_origin()

@json

def fun_function(request):

    # enter code here

或者您可以根據(jù)需要添加任意數(shù)量的功能,如下所示。


from flask_cors import cross_origin


@cross_origin(allowed_methods=['POST'])

@json

def fun_function(request):

    # enter code here


查看完整回答
反對 回復(fù) 2023-09-12
?
猛跑小豬

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個贊

并通過在 cors_enabled_function 的開頭添加預(yù)檢請求的 CORS 標(biāo)頭來解決它(正如達(dá)斯汀·英格拉姆(Dustin Ingram)建議的那樣);我留在函數(shù)末尾的主請求的 CORS 標(biāo)頭(這樣包括返回語句中的響應(yīng),無論是 JSON、文本等)。換句話說,我將主函數(shù)代碼放在預(yù)檢請求和主 CORS 請求之間。

查看完整回答
反對 回復(fù) 2023-09-12
?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個贊

如果您嘗試從前端進(jìn)行操作Post request并google cloud function遇到CORS. 以下模板必須有效。它對我有用......


#import all required packages

import json


def function_name(request):

? ? if request.method == 'OPTIONS':

? ? ? ? headers = {

? ? ? ? ? ? 'Access-Control-Allow-Origin': '*',? # Allow your function to be called from any domain

? ? ? ? ? ? 'Access-Control-Allow-Methods': 'POST',? # POST or any method type you need to call

? ? ? ? ? ? 'Access-Control-Allow-Headers': 'Content-Type',?

? ? ? ? ? ? 'Access-Control-Max-Age': '3600',

? ? ? ? }

? ? ? ? return ('', 204, headers)


? ? # Set CORS headers for main requests

? ? headers = {

? ? ? ? 'Access-Control-Allow-Origin': '*',

? ? }


? ? # Your code logic goes here


? ? # Return your response

? ? return (json.dumps({'status': 'success'}), 200, headers)

查看完整回答
反對 回復(fù) 2023-09-12
  • 5 回答
  • 0 關(guān)注
  • 275 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號