Javascript 获得;否';访问控制允许原点';标题出现在请求的资源上;来自烧瓶API
我有一个Flask服务器,试图通过AJAX调用向服务器发出GET请求。因此,我在浏览器控制台中遇到以下错误: 获取500(内部服务器错误) CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头。 下面是我用来发送请求的js代码:Javascript 获得;否';访问控制允许原点';标题出现在请求的资源上;来自烧瓶API,javascript,python-3.x,ajax,flask,Javascript,Python 3.x,Ajax,Flask,我有一个Flask服务器,试图通过AJAX调用向服务器发出GET请求。因此,我在浏览器控制台中遇到以下错误: 获取500(内部服务器错误) CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头。 下面是我用来发送请求的js代码: var xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else { xhr = ne
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
var data = x;
xhr.open("GET", "http://ip:APIport/endpoint");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Content-Type", "image/png");
xhr.setRequestHeader("Authorization", "Basic somestring);
xhr.onload = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(this.responseText);
if (callback instanceof Function) {
callback(results);
}
}
}
xhr.onerror = function (e) {
console.error(xhr.statusText);
};
xhr.send(data);
以下是我的Flask服务器配置:
从烧瓶导入烧瓶
从flask_cors进口cors,交叉原产地
从烧瓶进口请求
app=烧瓶(名称)
CORS(应用程序)
@app.route('/endpoint',methods=['GET','OPTIONS'])
def endpoint():
结果=‘你好,世界’
返回结果
请注意,FlaskAPI在docker容器中工作,当我通过Postman进行请求时,所有这些都可以正常工作
如果您对错误有任何建议,请提供帮助?我认为您应该在函数中添加交叉源装饰符 试试这个:
from flask import Flask, request
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app)
@app.route('/endpoint', methods=['GET', 'OPTIONS'])
@cross_origin()
def endpoint():
result = 'Hello World'
return result
我认为你应该在你的函数中添加交叉源装饰 试试这个:
from flask import Flask, request
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app)
@app.route('/endpoint', methods=['GET', 'OPTIONS'])
@cross_origin()
def endpoint():
result = 'Hello World'
return result
我更改了GET to POST,对我来说一切正常,谢谢你的回答。我更改了GET to POST,对我来说一切正常,谢谢你的回答。你的请求需要CORS头,因为端口号不同。您必须正确配置服务器。CORS头必须用于响应“API端口”请求的任何服务器代码>用于?您正在发出GET请求。您没有发布或放置图像文件。您的请求需要CORS标头,因为端口号不同。您必须正确配置服务器。CORS头必须用于响应“API端口”请求的任何服务器代码>用于?您正在发出GET请求。您没有发布或放置图像文件。