Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获得;否';访问控制允许原点';标题出现在请求的资源上;来自烧瓶API_Javascript_Python 3.x_Ajax_Flask - Fatal编程技术网

Javascript 获得;否';访问控制允许原点';标题出现在请求的资源上;来自烧瓶API

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

我有一个Flask服务器,试图通过AJAX调用向服务器发出GET请求。因此,我在浏览器控制台中遇到以下错误:

获取500(内部服务器错误) CORS策略已阻止从源“”访问“”处的XMLHttpRequest:请求的资源上不存在“访问控制允许源”标头。 下面是我用来发送请求的js代码:

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请求。您没有发布或放置图像文件。