我正在使用flask使用python编写的API,但是在发送带有授权的发布请求时遇到问题。我正在使用axios发出请求。
我几乎尝试了在此链接[Solve Cross Origin Resource Sharing with Flask]上找到的所有内容
from flask import Flask, request, jsonify
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app, resources={r"/*": {"origins": "*"}})
@app.route("/test", methods=["POST","GET"])
# @cross_origin is commented for the get request
@cross_origin(methods=["POST"], allow_headers=['Content-
def test():
return jsonify({'success':True})
if __name__ == "__main__":
app.run(host="0.0.0.0", debug=True)
// change post to get
axios.post('http://localhost:5000/test', {
// withCredentials: true,
headers: {
'Access-Control-Allow-Headers': 'Authorization',
'Authorization': 'token'
}
})
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error);
});
当我使用get但不发布时,授权令牌出现在标题中
得到请求:
https://i.imgur.com/2COOjbj.png
发布请求:
https://i.imgur.com/eWaFceS.png
编辑(已解决?)
并不是真正的解决方案,但我改用fetch并解决了我的问题,但我不知道为什么会首先发生
最佳答案
您只需要用*
更改http://localhost:5000/test
,就应该允许对特定域的访问。
另一种方法是使用默认参数初始化flask-cors
:
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
关于javascript - 无法通过发布请求将授权 token 发送到Flask API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55986581/