Javascript Can';由于CORS问题,无法访问Heroku上的烧瓶API
我正试图调用我的FlaskAPI(托管在Heroku上)。当我将url放在url栏中时,它会工作,但当我通过jquery实现它时,它不会失败 我继续安装并添加了以下内容:Javascript Can';由于CORS问题,无法访问Heroku上的烧瓶API,javascript,jquery,heroku,flask,cors,Javascript,Jquery,Heroku,Flask,Cors,我正试图调用我的FlaskAPI(托管在Heroku上)。当我将url放在url栏中时,它会工作,但当我通过jquery实现它时,它不会失败 我继续安装并添加了以下内容: app = Flask(__name__) cors = CORS(app) @app.route("/") @cross_origin() def home(): return jsonify({"results":{}}) 我还有别的事要做吗?在我的请求中,我还做了以下工作: function fetchRes
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
是您应该在响应而不是请求中设置的标题。而cross\u origin
可以为您实现这一点
如果要使用JQuery,只需使用:
$.ajax({
url: ...,
....,
crossDomain: true
})
Access Control Allow Origin
是您应该在响应而不是请求中设置的标题。而cross\u origin
可以为您实现这一点
如果要使用JQuery,只需使用:
$.ajax({
url: ...,
....,
crossDomain: true
})
谢谢你,Mehdy。但是我想使用xmlhttprequest(我已经发布了完整的javascript函数)。我已经按照您的建议从请求中删除了头,但我仍然看到相同的问题,记录为:
加载资源失败:无法从null发出任何请求。
哦!我懂了!只是不要将null
传递给send函数!只需xmlHttp.send()
我只需测试它就可以了。这个错误显然是由于请求引起的,与CORS无关。所以请确保您提供了一个有效的请求URL。您是如何在@mehdy测试它的?如果我在url栏中复制并粘贴requestURL,它就会工作。但是,如上图所示实现时,它不起作用。话虽如此,如果我点击Safari的“开发”菜单中的禁用交叉源限制
,我上面的例子就可以了,这意味着这是一个CORS问题。哇。我想这是一次旅行。我的API不需要身份验证。我发现它可以在firefox中使用。谢谢Mehdy。但是我想使用xmlhttprequest(我已经发布了完整的javascript函数)。我已经按照您的建议从请求中删除了头,但我仍然看到相同的问题,记录为:加载资源失败:无法从null发出任何请求。
哦!我懂了!只是不要将null
传递给send函数!只需xmlHttp.send()
我只需测试它就可以了。这个错误显然是由于请求引起的,与CORS无关。所以请确保您提供了一个有效的请求URL。您是如何在@mehdy测试它的?如果我在url栏中复制并粘贴requestURL,它就会工作。但是,如上图所示实现时,它不起作用。话虽如此,如果我点击Safari的“开发”菜单中的禁用交叉源限制
,我上面的例子就可以了,这意味着这是一个CORS问题。哇。我想这是一次旅行。我的API不需要身份验证。我发现它在firefox中工作。