我有一个在127.0.0.1:5000上运行的烧瓶应用程序和另一个在127.0.0.1:8000上运行的网站。该网站有js功能向烧瓶应用程序发出一个帖子请求,试图将一些字典数据发布到烧瓶应用程序。在js函数中我使用的是ajax:
$.ajax({
url: "http://127.0.0.1:5000/",
method: "POST",
headers: {
'Access-Control-Allow-Origin':'*',},
data: dict,
});
在烧瓶应用程序中:
@app.route('/',methods=['POST'])
def hello_world():
ok = request.get_json()
print(ok['id'])
return '', 200
最初在ajax调用中,我没有放任何标题。但它促使我“Cross-Origin Request Blocked”。然后我添加标题,请求显然变成了一个OPTIONS请求,在谷歌搜索后,建议进行飞行前检查。我怎么能避免检查?或者为什么这个检查返回200代码并且实际的帖子请求没有通过?请给我一些帮助!我被困在这几个小时。谢谢!
(p.s.我尝试安装flask_cors
库并将其应用于烧瓶应用程序,但它也不起作用)
答案 0 :(得分:0)
Access-Control-Allow-Origin
标题是响应标题 - 您不会在请求中传递它(来自网站JS) - 您在Flask应用的响应中传递它
如果你在请求中传递它,它什么也不做,除了让浏览器发送预检OPTIONS请求,因为它不是基本的请求标题。
所以
Access-Control-Allow-Origin
请求标头
Access-Control-Allow-Options: *
响应标头添加到您的Flask应用中(我不确定您如何在Flask中添加响应标头)