Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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
Python localhost中React的Flask API调用的CORS问题_Python_Reactjs_Flask_Cors_Axios - Fatal编程技术网

Python localhost中React的Flask API调用的CORS问题

Python localhost中React的Flask API调用的CORS问题,python,reactjs,flask,cors,axios,Python,Reactjs,Flask,Cors,Axios,我正在从React调用一个FlaskAPI(都在本地主机上运行),我遇到了CORS问题。 当发出请求时,浏览器(Chrome)会出现以下错误 Access to XMLHttpRequest at 'http://localhost:5000/sas' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access cont

我正在从React调用一个FlaskAPI(都在本地主机上运行),我遇到了CORS问题。 当发出请求时,浏览器(Chrome)会出现以下错误

Access to XMLHttpRequest at 'http://localhost:5000/sas' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.
安装程序 烧瓶设置如下所示

from flask_cors import CORS
from flask import Flask, request, Response
from flask_restful import Api, Resource
import json

class SAS(Resource):
    def get(self):
        content = request.json
        js = json.dumps(
            {
                "Response": "Some response"
            }
        )
        resp = Response(js, status=200, mimetype='application/json')
        return resp

app = Flask(__name__)
cors = CORS(app)
api = Api(app)
api.add_resource(SAS, '/sas/')
  buttonPressed = async event => {
    event.preventDefault();
    const response = await axios.get(`http://localhost:5000/sas`, {
      data: {
        user: "user",
        file_name: "user",
        directory_name: "user"
      }
    });
  };
在React中使用axios的调用如下

from flask_cors import CORS
from flask import Flask, request, Response
from flask_restful import Api, Resource
import json

class SAS(Resource):
    def get(self):
        content = request.json
        js = json.dumps(
            {
                "Response": "Some response"
            }
        )
        resp = Response(js, status=200, mimetype='application/json')
        return resp

app = Flask(__name__)
cors = CORS(app)
api = Api(app)
api.add_resource(SAS, '/sas/')
  buttonPressed = async event => {
    event.preventDefault();
    const response = await axios.get(`http://localhost:5000/sas`, {
      data: {
        user: "user",
        file_name: "user",
        directory_name: "user"
      }
    });
  };
注意:运行来自Postman的请求可以工作并显示标题
accesscontrolalloworigin=*

你知道怎么解决这个问题吗


另外,如果我将React前端和API作为停靠应用程序运行,我应该不会再看到这个问题了,对吗?在这种情况下,我也会考虑在我开发

< P>时,请尝试使用这个最小例子中的SigRoOx原创性装饰器:

from flask import Flask, request, jsonify
from flask_cors import CORS, cross_origin
app = Flask(__name__)
CORS(app, support_credentials=True)

@app.route('/sas', methods=['POST', 'GET', 'OPTIONS'])
@cross_origin(supports_credentials=True)
def index():
    if(request.method=='POST'):
     some_json = request.get_json()
     return jsonify({"key": some_json})
    else:
        return jsonify({"GET": "Nice Get Request"})

if __name__=="__main__":
    app.run(host='0.0.0.0', port=5000)

如果这样做有效,那么我们将在代码中实现相同的装饰器。

这是否相关?谢谢@Pitto指出这一点。我以前看到过这个页面,但是不幸的是,它没有帮助解决这个问题,但是仍然不起作用。该错误现在与访问位于的XMLHttpRequest的
略有不同http://localhost:5000/sas/“(已从中重定向”http://localhost:5000/sas')源于http://localhost:3000'已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:它没有HTTP ok状态。
我终于能够使用您的建议从React发送请求,但也修改了React请求以发送到
http://127.0.0.1:5000/sas
而不是
http://localhost:5000/sas
(为什么会有所不同?)。使用
flask\u restful
Hi@GZZ仍不工作。请考虑我的回答和/或选择它作为最终答案,如果它对你有用。谢谢