我试图构建一个应用程序来向其他域的网站提供搜索查询。在本地主机上进行实验时,我遇到了一个CORS错误:跨源请求被阻止...(原因:缺少CORS标头'Access-Control-Allow-Origin')。经过一番研究,我觉得当我尝试进行部署时,此错误将跟随我。
显而易见的解决方案是添加标头,现在使用*值。我已经在Flask中四处寻找了可能的方法,但是我不知道如何实现。
https://www.w3.org/wiki/CORS_Enabled W3只是建议打印“ Access-Control-Allow-Origin:*”。不用说,这是行不通的。他们必须在更基本的地方使用python ...
Flask - malformed header from script 'app.cgi': Bad header 这个问题看似相关,因为它确实触及了CGI标头(甚至是那个)和Flask,但是我并没有真正处理脚本中的任何响应。
作为参考,这是我的烧瓶脚本:
app = Flask(__name__)
@app.route("/search/<tag>")
def result(tag):
return str(fullSearch(tag))
if __name__ = "__main__":
app.run()
当我手动访问“ / search / anything”时,此脚本确实起作用并且正确返回一个字符串化的json。 这是我的Ajax电话:
let request = new XMLHttpRequest();
request.open("GET", "http://127.0.0.1:5000/search/anything");
request.onload = function(){
console.log(JSON.parse(request.responseText));
}
request.send();
再次,它返回CORS错误。 如何更新CORS标头?
答案 0 :(得分:0)
也许您可以尝试在项目中添加的flask_cors
软件包
from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route("/search/<tag>")
def result(tag):
return str(fullSearch(tag))
if __name__ = "__main__":
app.run()