gpt4 book ai didi

ajax - 如何在 Angular 中捕获 http 错误响应

转载 作者:行者123 更新时间:2023-12-03 07:37:55 24 4
gpt4 key购买 nike

背景

  • 我的 Angular 应用程序通过一组 API 端点与数据库进行通信。
  • “用户/身份验证”端点接受用户名和密码并返回成功 (200) 或错误请求 (400) http 响应。

  • Controller
    authService.login(email, password)
    .success(function (response) {
    /* go to application */
    })
    .error(function (response) {
    /* display proper error message */
    });

    认证服务
    factory.login = function(email, password) {
    return $http({
    method: 'POST',
    url: "http://myserver/user/authenticate",
    data: $.param({email: email, password: password}),
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    });
    }

    问题

    当用户名和密码失败并且 API 返回 400 响应时,即使我捕获了错误并向用户显示了正确的消息,错误也会出现在浏览器控制台中。
    POST http://myserver/user/authenticate 400 (Bad Request)

    我能以更好的方式处理错误吗?

    最佳答案

    尝试这个

    factory.login = function(email, password) {
    return $http({
    method: 'POST',
    url: "http://myserver/user/authenticate",
    data: $.param({email: email, password: password}),
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).then(function (response) {
    /**Check here your status code 400 if you found that status code is 400 the reject the promise**/
    if (statuscode !==400) {
    return response.data;
    } else {
    // invalid response
    return $q.reject(response.data);
    }

    }, function (response) {
    // something went wrong
    return $q.reject(response);
    });
    }

    然后使用以下代码
     authService.login(email, password)
    .then(function (response) {
    /* go to application */
    },function(error) {
    console.log(error); /* catch 400 Error here */
    });

    关于ajax - 如何在 Angular 中捕获 http 错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487785/

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