我正在尝试从使用 https 的网站上运行的 chrome 开发人员工具控制台窗口向本地主机服务器发出 GET(或 POST(请求(在本例中为 outlook.com,但对于任何 https 都是一样的(。如果我从在 http 上运行的网站运行相同的代码,它可以正常工作。
我得到的错误:
无法加载 http://127.0.0.1:5000/:CORS 策略已阻止从"http://127.0.0.1:5000/"重定向到"https://127.0.0.1:5000/":请求的资源上不存在"访问控制允许源"标头。因此,不允许访问源"https://outlook.live.com"。
我发现 https 到 http 的通信是不可能的,但是在 https 上运行烧瓶服务器也无济于事,在这种情况下,Flask 甚至无法识别传入的请求。
我正在运行一个 Flask 应用程序,代码:
from flask import Flask
from flask import request
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route("/", methods=['GET', 'POST'])
def foo():
return "bar"
if __name__ == "__main__":
app.run()
我用于请求的 JavaScript:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(xhttp.responseText);
}
};
xhttp.open("GET", "http://127.0.0.1:5000/", true);
xhttp.send();
我知道有很多类似的问题,但是发布的解决方案都不适合我,如何从https网站上运行的chrome开发人员工具到本地主机服务器(最好是Flask(创建成功的GET或POST请求?
当运行 Flask 应用程序时,ssl_context='adhoc'
使用 https:
是浏览器阻止了https,因为证书不安全。
这个答案(发布在这里(对我有用:
不适用于生产
只需将其粘贴到您的镶边中:
chrome://flags/#allow-insecure-localhost
您应该看到突出显示的文本,内容为:允许从本地主机加载的资源获得无效证书单击启用。
此外,这篇博文还详细介绍了如何将 Flask 与证书一起使用。