我正在尝试从运行在https网站上的Chrome开发者工具控制台窗口向本地主机服务器发出GET(或POST)请求(在这种情况下是outlook.com,但对于任何网站都是如此) HTTPS)。如果我从在http上运行的网站运行相同的代码,它可以正常工作。
我得到的错误:
无法加载http://127.0.0.1:5000/:重定向来自' http://127.0.0.1:5000/'到' https://127.0.0.1:5000/'被CORS政策阻止:No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' 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开发人员工具创建成功的GET或POST请求到本地主机服务器(最好是Flask) ?
答案 0 :(得分:0)
使用ssl_context='adhoc'
运行Flask应用时,使用https:
浏览器阻止了https,因为证书不安全。
这个答案(已发布here)对我有用:
不适合PROD
只需将其粘贴到您的Chrome中即可:
chrome://flags/#allow-insecure-localhost
您应该看到突出显示的文本说明:允许从localhost加载的资源的无效证书单击“启用”。
此外,this blog post详细介绍了如何将Flask与证书一起使用。