0

我正在使用 axios 作为 http-client 调用私有 REST API。如果我正在调用一个应该响应有关对象的一些信息的端点,我会得到一个响应(状态代码 200、包含该信息的有效负载等)。如果我请求的对象不存在,则 REST API 会以状态码 204 且无负载响应。我认为这很好,我的问题是 axios 对此响应没有反应。

这是我所拥有的:

此函数用于使用提供的端点请求方法和端点 URI 动态调用端点(这是一些项目特定的东西)。

restApiService.triggerEndpoint(endpointReqMeth, endpointUri, inputData)
.then(response => {
   // handling successfull response here
})
.catch(err => {
  // handling error response here
})

triggerEndpoint 函数根据端点的请求方法调用所需的 axios 方法:

  triggerEndpoint = function (edPoURI, edPoReqMethod, params) {
    switch (edPoReqMethod) {
      case 'GET':
          return axios.get(edPoURI, {
            params: {
              ...params,
            },
          });
      case 'POST':
        return axios.post(edPoURI, {
          ...params,
        });
    }
  };

我想要的是:

如果我收到状态代码 204,我希望我最终会在 restApiService.triggerEndpoint 函数的 then 块中处理有关其状态的响应。

发生了什么:

在调用函数 triggerEndpoint(在本例中为 axios.get 函数)后,请求被转发到 REST API,后者发挥其魔力并以状态码 204 和无负载响应。但在我的后端......什么都没有发生。

后端进程不会以任何方式做出反应。

这是具有相同数据的同一端点的 soapui 请求的屏幕截图,显示如果请求不存在的对象(在本例中为 123),则 REST 以 204 响应在此处输入图像描述

你能帮我吗?我在这里想念什么?在这种情况下 axios 应该如何表现?

我猜 axios 收到了响应,但发生了一些未处理的事情。我猜这是因为如果 axios 没有得到响应,超时应该在某个时候启动,而这永远不会发生。

非常感谢提前

4

0 回答 0