我正在尝试调用我的 Flask api(托管在 Heroku 上)。当我将 url 放入 url 栏中时它会起作用,但当我通过 jquery 实现它时它会失败。
我继续安装了 flask-cors并添加了以下内容:
app = Flask(__name__)
cors = CORS(app)
@app.route("/")
@cross_origin()
def home():
return jsonify({"results":{}})
我还有什么事情要做吗?我还在我的请求中执行了以下操作:
function fetchResults(requestURL, callback) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState === 4) {
if (xmlHttp.status === 200) {
callback(xmlHttp.responseText);
} else {
console.error("Error: " + xmlHttp.status + xmlHttp.statusText);
}
}
}
//Make Async GET Request
xmlHttp.open("GET", requestURL, true);
xmlHttp.setRequestHeader('Access-Control-Allow-Origin', '*');
xmlHttp.send(null);
}
最佳答案
Access-Control-Allow-Origin
是您应该在响应而不是请求中设置的 header 。 cross_origin
会为您完成此操作。
如果你想使用 JQuery 只需使用:
$.ajax({
url: ...,
....,
crossDomain: true
})
关于javascript - 由于 CORS 问题,无法在 Heroku 上访问 Flask API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37064834/