javascript - 如何更改 Flask 中的 CORS header ?

标签 javascript python ajax flask cors

我试图构建一个应用程序来为不同域的网站提供搜索查询。在本地主机上进行实验时,我遇到了 CORS 错误:跨源请求被阻止...(原因:CORS header “Access-Control-Allow-Origin”丢失)。经过一番研究后,我的印象是,当我尝试部署时,这个错误会跟随我。

显而易见的解决方案是添加 header ,目前其值为 *。我已经四处寻找在 Flask 中执行此操作的可能性,但我不知道如何实现任何内容。

https://www.w3.org/wiki/CORS_Enabled W3 只是建议打印“Access-Control-Allow-Origin:*”。不用说,这是行不通的。他们一定在更基础的地方使用 python...

Flask - malformed header from script 'app.cgi': Bad header 这个问题看似相关,因为它确实涉及 CGI header (那是什么)和 Flask,但我并没有真正处理脚本中的任何响应。

作为引用,这是我的 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 header ?

最佳答案

也许你可以尝试在你的项目中添加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()

关于javascript - 如何更改 Flask 中的 CORS header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575155/

相关文章:

javascript - JS 正则表达式跳过所有其他匹配项

python - Ubuntu 通过 apt-get 安装 apache spark

Python:无法 imoport keras,导入错误:没有名为 tensorflow 的模块

python - 将动态函数应用于相空间中的每个点(由二维矩阵表示)

jquery - 使用 AJAX 的 phpseclib 实时控制台/终端

javascript - Prestashop 表单提交 jquery Ajax

javascript - 使用 Ajax 将表单数据传递到 PHP 时出现问题

javascript - 对话框打开之前的 JQuery UI

javascript - jQuery:每个循环都有问题

c# - 首先运行 javascript,成功后运行后面的代码