如何从客户端的 Firebase 应用程序向我的应用程序引擎发出 http 请求?
How can I make an http request to my app engine from a Firebase app on the client side?
我已经编写了一个 Flask 应用程序并将其部署到应用程序引擎,当我向url 类似于:
import logging
import firebase_admin
from firebase_admin import firestore
import flask
app = flask.Flask(__name__)
@app.route('/test', methods=['POST'])
def get_data():
data = flask.request.json
return flask.jsonify({"test":1000);
我正在尝试向客户端上的“https://****.appspot.com/test”发出如下 POST 请求,该客户端是托管在Firebase 托管但出现 'Access-Control-Allow-Origin' 错误。
fetch('https://***.appspot.com/vrp', {
method: 'POST',
data: null
})
.then(response =>
console.log(`response is ` , response.json()))
我看到 here 我可以编辑 app.yaml 但我想不通。我犯错了吗?
我的app.yaml:
runtime: custom
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
handlers:
- url: /*
static_dir: /
http_headers:
Access-Control-Allow-Origin: "*"
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
我最终使用了 flask_cors 并解决了问题。只需像下面那样在您的 main.py 或您拥有代码的地方使用它。
import logging
import firebase_admin
from firebase_admin import firestore
import flask
from flask_cors import CORS
app = flask.Flask(__name__)
CORS(app)
@app.route('/test', methods=['POST'])
def get_data():
data = flask.request.json
print('@/get_data via route /test method POST with data {}'.format(data))
return flask.jsonify({"test":1000});
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)
我已经编写了一个 Flask 应用程序并将其部署到应用程序引擎,当我向url 类似于:
import logging
import firebase_admin
from firebase_admin import firestore
import flask
app = flask.Flask(__name__)
@app.route('/test', methods=['POST'])
def get_data():
data = flask.request.json
return flask.jsonify({"test":1000);
我正在尝试向客户端上的“https://****.appspot.com/test”发出如下 POST 请求,该客户端是托管在Firebase 托管但出现 'Access-Control-Allow-Origin' 错误。
fetch('https://***.appspot.com/vrp', {
method: 'POST',
data: null
})
.then(response =>
console.log(`response is ` , response.json()))
我看到 here 我可以编辑 app.yaml 但我想不通。我犯错了吗?
我的app.yaml:
runtime: custom
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 3
handlers:
- url: /*
static_dir: /
http_headers:
Access-Control-Allow-Origin: "*"
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
我最终使用了 flask_cors 并解决了问题。只需像下面那样在您的 main.py 或您拥有代码的地方使用它。
import logging
import firebase_admin
from firebase_admin import firestore
import flask
from flask_cors import CORS
app = flask.Flask(__name__)
CORS(app)
@app.route('/test', methods=['POST'])
def get_data():
data = flask.request.json
print('@/get_data via route /test method POST with data {}'.format(data))
return flask.jsonify({"test":1000});
if __name__ == '__main__':
app.run(host='127.0.0.1', port=8080, debug=True)