Axios,向 Flask 发出 POST 请求

Hen*_*rik 5 flask axios

我尝试使用 axios 向 Flask 服务器发送 POST:

var config = { headers: {  
                      'Content-Type': 'application/json',
                      'Access-Control-Allow-Origin': '*'}
             }
 axios.post("http://127.0.0.1:5000/test", 
             { label : "Test" , text : "Test"}  , config
          )
          .then(function (response) {
            console.log(response);
          })
          .catch(function (error) {
            console.log(error);
          });
Run Code Online (Sandbox Code Playgroud)

现在是 Flask 的一部分

...
data = request.get_json(silent=True)
item = {'label': data.get('label'), 'text': data.get('text')}
print item
...
Run Code Online (Sandbox Code Playgroud)

但是,我最终会遇到以下错误:

XMLHttpRequest 无法加载http://127.0.0.1:5000/test。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://localhost:3000 ”。

为什么?我将按照建议设置标题。

这里是解决方案

from flask_cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app, resources={r"/YOURAPP/*": {"origins": "*"}})
Run Code Online (Sandbox Code Playgroud)

dze*_*zej 5

您需要向 Flask 应用程序添加 CORS 支持。请参阅此处的相关威胁: Flask-CORS 不适用于 POST,但适用于 GET。可以在这里找到 Flask 的流行 CORS 扩展:https ://flask-cors.readthedocs.io/en/latest/ 。