当前位置: 首页 > 知识库问答 >
问题:

Axios,发送请求到烧瓶

淳于祺
2023-03-14

我尝试使用axios对烧瓶服务器进行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);
          });

现在是烧瓶的部分

...
data = request.get_json(silent=True)
item = {'label': data.get('label'), 'text': data.get('text')}
print item
...

但是,我最终会出现以下错误:

无法加载XMLHttpRequesthttp://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": "*"}})

共有2个答案

商同
2023-03-14

如果其他人被卡住了,一定要在请求方法之前检查之后检查。我的问题是:

@app.before_request
def oauth_verify(*args, **kwargs):
    """Ensure the oauth authorization header is set"""
    if not _is_oauth_valid():
        return some_custome_error_response("you need oauth!")

因此,这将在任何请求中引发异常,包括OPTIONS方法。当然,解决方法很简单:

@app.before_request
def oauth_verify(*args, **kwargs):
    """Ensure the oauth authorization header is set"""
    if request.method in ['OPTIONS', ]:
        return
    if not _is_oauth_valid():
        return some_custome_error_response("you need oauth!")

宋烨烁
2023-03-14

您需要向Flask应用程序添加CORS支持。这里有一个相关的威胁:Flask CORS不是为POST工作,而是为GET工作。烧瓶常用的CORS扩展可在此处找到:https://flask-cors.readthedocs.io/en/latest/.

 类似资料:
  • 问题内容: 我正在开发一个React应用,该应用需要从elsaticsearch获取数据。在前端,实际上我正在尝试使用axios来执行请求: 我想获取带有某些ID的特定文档。上面的查询实际上在kibana内部有效。但是,以上查询返回my-type内的所有文档,我在这里做错了什么? 问题答案: 我认为以下应该可行。虽然爱可信自述说,是专门只为,,和请求,我没有看到在强制执行此代码的任何,和简化的测试

  • 这个请求在postman中工作得非常好,所以我认为它与cors相关,并安装了fastify-cors,但我仍然得到同样的错误。 有人有什么建议如何解决这个问题吗?

  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。

  • 问题内容: 我正尝试从其自己的视图之一向我的Flask应用发送发布请求,但该请求一直挂起,直到我杀死服务器为止。如果我使用JavaScript进行请求,则效果很好。为什么从Python代码中不起作用? 问题答案: 在1.0之前,Flask的开发服务器默认为单线程。在这种模式下,它一次只能处理一个请求。发出请求直到接收到响应为止。您的Flask代码在一个线程中发出一个请求,然后等待。没有其他线程可以

  • 问题内容: 我正在使用Axios从客户端向我的Express.js服务器发送请求。 我在客户端上设置了一个cookie,我想从所有Axios请求中读取该cookie,而无需手动将其手动添加到请求中。 这是我的客户端请求示例: 我试图通过在Express.js服务器中使用以下属性来访问标头或cookie: 他们两个都不包含任何cookie。我正在使用cookie解析器中间件: 如何使Axios自动在

  • 发送请求 发送同步请求 Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/ Web3ClientVersion web3ClientVersion = web3.web3ClientVersion().send(); String clientVersion = web3Client