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

为什么邮递员显示错误消息,但反应应用程序不显示它?

劳高爽
2023-03-14

我正在开发一个API(使用nodejs的AWS lambda函数)。在这里,我检查通过HTTP POST发送到API的文件是否小于2 MB。如果他们比这还多,那么我提出了一个错误。

import createError from "http-errors";

if (totalSize > sizeLimitInMB) {
    throw new createError.Forbidden(
      `Size of all the attachments combined should not exceed ${sizeLimitInMB} MB. The files you have submitted are ${totalSize} MB`
    );
  }

现在,邮递员正确地显示了此错误消息。但当我尝试使用react前端产生相同的情况时。我收到了这个消息

Access to XMLHttpRequest at 'MY_API_URL' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

an error occurred  Error: Network Error
    at createError (createError.js:16)
    at XMLHttpRequest.handleError (xhr.js:84)

POST 'MY_API_URL' net::ERR_FAILED

我不知道为什么CORS出错,因为如果我的文件小于2 MB,它就可以工作。react组件中的我的代码

try {
      await submit(id, data);
      setSaving(false);
      history.replace("/");
    } catch (error) {
      setSaving(false);
      console.error("an error occurred ", error);
    }

为什么前端无法控制台记录与邮递员相同的错误消息?这不仅仅是因为这个特殊的尺寸误差。我抛出的任何其他错误,例如“只有所有者可以删除此文件”或“未找到具有此ID的帖子”,也不会显示在我的前端,但在postman中效果很好

共有1个答案

金承嗣
2023-03-14

我可以通过改变通用中间件中中间件的顺序来解决这个问题。我有一个用于包装处理程序的通用中间件功能

export const handler = commonMiddleware(myHandler);

Earlier it was
export default (handler) =>
  middy(handler).use([
    httpJsonBodyParser(),
    httpEventNormalizer(),
    httpErrorHandler(),
    cors(),
  ]);

After
export default (handler) =>
  middy(handler).use([
    cors(),
    httpJsonBodyParser(),
    httpEventNormalizer(),
    httpErrorHandler(),
  ]);

而且奏效了

 类似资料:
  • 问题内容: 我安装了XAMPP 1.7.4(使用PHP 5.3.5),问题是PHP不显示任何错误消息。例如,如果我使用不带参数的MYSQL连接,PHP将不会抱怨必填字段。 为什么是这样? 如何配置PHP以显示错误? 问题答案: 要在脚本级别启用错误,请在脚本顶部添加: 或者,如果它 不是 生产站点,而仅仅是开发/测试站点,则可以在php.ini中打开错误报告。搜索以下设置:

  • 我正在尝试使用rails创建新项目,但它显示错误。我正在处理mac及其显示错误 $rails新特快专递

  • 我是新开发人员。创建生成android APK时发现错误。 已经设置到环境变量,但什么都没发生...请帮帮我。给我这个的解决方案。 D:\Ionic\testPushNotification

  • 这几个月来,我们一直在努力实现这一目标,但现在需要这样做。我需要显示服务器上设置的错误消息,说明出现了什么错误: 服务器endpoint 网状物: 在chrome开发工具中的预览下,我看到消息

  • 我正在尝试运行Spring Boot REST API应用程序,但遇到了404错误。 波姆。xml 我还尝试了,但没有成功。你能帮我解决这个问题吗? 如果我打http://localhost:8080/hello网址,然后我得到404。

  • 错误如下: 02-11 13:24:31.561 526 2-5262/?E/AndroidRuntime:致命异常:main process:com.example.vicky.project,pid:5262 java.lang.runtimeException:无法启动活动ComponentInfo{com.example.vicky.project/com.example.vicky.pr