【发布时间】:2018-10-12 10:45:57
【问题描述】:
我正在尝试从运行在具有 https 的网站上的 chrome 开发人员工具控制台窗口向 localhost 服务器发出 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 策略阻止:请求的资源上不存在“Access-Control-Allow-Origin”标头。 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 请求到 localhost 服务器(最好是 Flask) ?
【问题讨论】:
标签: http redirect https cors flask-cors