【问题标题】:Not getting status error code in angular js promise在 Angular js Promise 中没有得到状态错误代码
【发布时间】:2026-01-22 11:05:01
【问题描述】:

我想知道这个函数中错误的状态码。我目前得到这个:GET http://localhost:3000/latest-live?lu=1448920013000 net::ERR_EMPTY_RESPONSE

有人知道我是否错误地处理了我的错误函数吗?我知道为什么会出现错误,但为了更好地处理错误,我想知道状态码是什么(例如:未找到状态码 404)。

app.factory('getSpreadsheetData', ['$q', '$http', function($q, $http) {

return function getData() { 
    var deferred = $q.defer();

    var req = $http({
        url: 'http://localhost:3000/latest-live',
        method: 'GET',
        cache: false
    });

    req.success(function(object) {
        var data = object.data;
        deferred.resolve(data);
    });

    req.error(function(err) {
        deferred.reject(err);
    });

    return deferred.promise;
}
}]);

【问题讨论】:

    标签: javascript angularjs error-handling deferred


    【解决方案1】:

    如果您尝试在您的 URL 中访问的服务器肯定没有响应,通常会引发该错误。

    确保您的系统确实知道 localhost,并且端口 3000 上正在运行一些东西,可以向您的客户端返回一些东西。

    确保您的服务器上知道该路由/latest-live,并且在返回任何信息之前它没有崩溃。

    当您尝试在浏览器中调用它时,我要做的第一件事是检查该 URL 是否确实返回了某些内容。

    更新:状态代码

    通常状态码在响应中,因此您可能需要检查errresponse 中是否有任何内容,具体取决于调用的函数:

    response.status – Number – HTTP status code
    response.statusText – String – HTTP status text
    

    最好的问候

    【讨论】:

    • 问题不在于我遇到了错误。问题是正在返回的错误。我想知道状态码,以便更有效地处理错误。
    • 我在回答中添加了有关状态(文本+代码)的信息。