0

我正在尝试使用 Charles-Proxy 来测试我的 angular 1 代码上的一些错误流路径,因此我故意将使用 Charles Proxy 的一些 api 请求重写为 503。在网络选项卡中,我在选项请求中看到了 503当 $http 请求进入它的错误处理函数时,它返回 -1 作为错误状态而不是 503。

$http(requestObject).then(function() {
  //some code that isn't running
}, function(error) {
  console.log(error.status) //logs -1
})

我的 Charles 代理重写正在命中,响应状态如下所示。

Charles 代理响应状态

您可以在下面看到控制台输出(从图像中删除了 url)

在此处输入图像描述

当我不使用 Charles 重写时,它工作得很好,如果自然出现错误,它也能正常工作。

谢谢。

4

1 回答 1

0

查尔斯可能正在按您的预期工作。

问题是由于 CORS 策略,请求已中止。有关状态代码“-1”和 CORS,请参见以下说明。

AngularJS $http 返回文档
跨域资源共享

根据 AngularJS 文档,“-1”状态码是从 $http 库返回的,而不是从 Charles 或您的 api 服务器返回的。

编写附加代码以允许您的 API 服务器使用 CORS,然后重试该请求。

于 2020-01-12T15:40:44.123 回答