从Flask API获取“请求的资源上不存在'Access-Control-Allow-Origin'标头”

Ara Gasparyan

我有一个Flask服务器,并尝试通过AJAX调用向服务器发出GET请求。结果,在浏览器的控制台中出现以下错误:

GET http:// ip:port / endpoint 500(内部服务器错误)

从起源' http:// ip:websitePort '的' http:// ip:APIport / endpoint '处对XMLHttpRequest的访问已被CORS策略阻止:在所请求的资源上没有'Access-Control-Allow-Origin'标头。

以下是我用来发送请求的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服务器配置:

from flask import Flask
from flask_cors import CORS, cross_origin
from flask import request


app = Flask(__name__)
CORS(app)


@app.route('/endpoint', methods=['GET', 'OPTIONS'])
def endpoint():

    result = 'Hello World'

    return result

请注意,Flask API在docker容器中工作,当我通过Postman进行请求时,一切正常。

如果您对错误有任何建议,请提供帮助?

Ara Gasparyan

我将GET更改为POST,对我来说一切正常,感谢您的回答。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

WebSockets请求中的请求资源上不存在“ Access-Control-Allow-Origin”标头

Java Spring:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

所请求的资源上不存在“ Access-Control-Allow-Origin”标头(春季)

XMLHttpRequest请求的资源上不存在“ Access-Control-Allow-Origin”标头

Angular JS:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

AJAX请求获取“所请求的资源上不存在“ Access-Control-Allow-Origin”标头”错误

Http.post请求的资源上不存在“ Access-Control-Allow-Origin”标头

请求资源ajax jquery phonegap上不存在“ Access-Control-Allow-Origin”标头

Express JS:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

提取错误所请求的资源上不存在“ Access-Control-Allow-Origin”标头

角度6:请求的资源上不存在“ Access-Control-Allow-Origin”标头

无法加载http://127.0.0.1:8000/api/users:请求的资源上不存在“ Access-Control-Allow-Origin”标头

KeyCloak:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

Javascript / Flask-请求的资源上不存在“ Access-Control-Allow-Origin”标头

在AJAX请求的请求资源上不存在“ Access-Control-Allow-Origin”标头

CORS问题:所请求的资源上不存在“ Access-Control-Allow-Origin”标头

请求的资源上不存在“ Access-Control-Allow-Origin”标头

keycloak 中请求的资源上不存在“Access-Control-Allow-Origin”标头

Apigee + Angular 请求的资源上不存在“Access-Control-Allow-Origin”标头

导轨。请求的资源上不存在“Access-Control-Allow-Origin”标头

Apache Tomcat 请求的资源上不存在“Access-Control-Allow-Origin”标头

请求的资源 Symfony 上不存在“Access-Control-Allow-Origin”标头

React、API 平台 - 请求的资源上不存在“Access-Control-Allow-Origin”标头

反应使 axios 获取,返回错误:CORS 策略:请求的资源上不存在“Access-Control-Allow-Origin”标头

角度:请求的资源上不存在“Access-Control-Allow-Origin”标头

Laravel 修复请求的资源上不存在“Access-Control-Allow-Origin”标头

请求的资源(AWS、API 网关、S3、CORS)上不存在“Access-Control-Allow-Origin”标头

Flutter:请求的资源上不存在“Access-Control-Allow-Origin”标头

.NET 6 Web Api 项目请求的资源上不存在“Access-Control-Allow-Origin”标头