gpt4 book ai didi

javascript - 如何从 AngularJS $http 请求中获取实际错误?

转载 作者:行者123 更新时间:2023-11-29 15:37:07 25 4
gpt4 key购买 nike

我是 AngularJS 的新手。我正在尝试获取有关 GET 请求期间发生的实际错误的信息。我的请求设置如下:

$http.get(myUrl).then(mySuccessFunction).catch(function(reason) {
//
});

传递给 catch 的 reason 对象有 5 个属性:

  1. config - 包含有关我发送的请求的信息(URL、方法等)
  2. 标题
  3. 数据 - 似乎总是为空,无论发生什么错误
  4. status - 似乎总是 0,无论发生什么错误
  5. statusText - 似乎总是“”,不管发生什么错误

我也研究过使用 $http.get(url).success().error() 技术,但是 error() 函数的传递通常是相同的(看似无用)信息,仅以参数形式存在,而不是作为单个对象的属性。

从浏览器控制台,我可以看到请求正在触发状态 500 或 ERR_CONNECTION_REFUSED 等。但是,我看不到如何从 reason 中获取该信息 对象...

如何获取有关请求期间发生的实际错误的信息?


更新:
我发现这个问题对我来说实际上是一个 CORS 问题。请参阅下面我的回答。

最佳答案

我发现,就我而言,问题是 CORS 问题,它隐藏了真正的问题。

在发布问题之前,我正在测试 2 个错误案例:

  1. 服务器不可用(ERR_CONNECTION_REFUSED)
  2. 服务器遇到内部错误(状态 500)

两种错误情况都通过 Angular 捕获/错误功能为我提供了完全相同的“错误”数据(数据/状态/状态文本为 null/0/"")。对于 (1) null/0/""是正确的响应。对于 (2),当我的开发服务器(有意)触发状态 500 响应时,它没有针对该错误响应正确处理 CORS。

显然,对于 CORS 问题,null/0/""也是 Angular 生成的 GET 的正确“错误”数据

发布这个问题后,我尝试了其他错误条件(404 等),并开始将更多有用的数据传递给 catch/error 函数。

关于javascript - 如何从 AngularJS $http 请求中获取实际错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26791195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com