Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的API服务不断陷入错误案例-AngularJS 服务 控制器 后果_Javascript_Angularjs - Fatal编程技术网

Javascript 我的API服务不断陷入错误案例-AngularJS 服务 控制器 后果

Javascript 我的API服务不断陷入错误案例-AngularJS 服务 控制器 后果,javascript,angularjs,Javascript,Angularjs,我看到这些 {location: "http://ddddd.com/hom…zg2fQ.D9pDqUBD3bcKnH_bPoGCpd-odxJ48LUZTKOGZZnV0Y0"} 我不知道为什么我会陷入错误案例部分,但我似乎从服务器得到了正确的响应 有人能帮我解释一下吗?这项服务使用了。虽然这不是问题的根源,但请修复它并添加console.log语句: onboardingApp.service('apiService', function ($http, $q, $lo

我看到这些

{location: "http://ddddd.com/hom…zg2fQ.D9pDqUBD3bcKnH_bPoGCpd-odxJ48LUZTKOGZZnV0Y0"}
我不知道为什么我会陷入
错误
案例部分,但我似乎从服务器得到了正确的响应

有人能帮我解释一下吗?

这项服务使用了。虽然这不是问题的根源,但请修复它并添加
console.log
语句:

onboardingApp.service('apiService', function ($http, $q, $localStorage) {

    //Testing code
    var self = this;

    self.login = (user) => {
        ̶l̶e̶t̶ ̶d̶e̶f̶e̶r̶ ̶=̶ ̶$̶q̶.̶d̶e̶f̶e̶r̶(̶)̶;̶
        let login  = {
            username: user.username,
            password: user.password
        };

        return $http({
            method: 'POST',
            url: `http://ddd.com/login`,
            data: login
        }).then(
            (response) => {
                console.log("success", response);
                setAuthToken(response);
                return response.data;
            },
            (error) => {
               console.log("error",error);
               throw error;
            }
        );
    };    
});
这将允许您诊断问题


成功登录后,它应该返回状态代码200,而不是302。我如何调整您的代码以接受302作为成功而不是错误

将被拒绝的承诺转换为成功的承诺,只需
向拒绝处理程序返回
值:

       return $http({
            method: 'POST',
            url: `http://ddd.com/login`,
            data: login
        }).then(
            (response) => {
                console.log("success", response);
                setAuthToken(response);
                return response.data;
            },
            (error) => {
               console.log("error",error);
               if (error.status==302) {
                   console.log("Converting erroneous API response");
                   error.status==200;
                   return error.data;
               };
               //ELSE
               throw error;
            }
        );

那张图片只显示了请求。反应如何?状态超出范围200…299返回被拒绝的承诺。@georgeawg response似乎与我期望返回的数据配合得很好。
response.Status
?我无法访问
response.Status
,因为我的代码一直进入
error
块。
Status
属性也附加到对象返回到拒绝处理程序。您的代码显示与我以前的代码相同的结果。是否在控制台中没有任何记录的情况下失败?状态302是“永久移动”重新定向。浏览器应自动从指定位置获取数据。它通常不会传递给$http服务。应用程序中是否配置了调试程序?我甚至尝试放置调试程序,它仍然只进入错误部分。它进入错误部分,因为状态超出范围200…299。状态302超出该范围。我很困惑,为什么服务器响应302重定向,而浏览器不遵循重定向。此外,重新定向的位置应该在响应的头中,而不是在响应的主体中。
onboardingApp.service('apiService', function ($http, $q, $localStorage) {

    //Testing code
    var self = this;

    self.login = (user) => {
        ̶l̶e̶t̶ ̶d̶e̶f̶e̶r̶ ̶=̶ ̶$̶q̶.̶d̶e̶f̶e̶r̶(̶)̶;̶
        let login  = {
            username: user.username,
            password: user.password
        };

        return $http({
            method: 'POST',
            url: `http://ddd.com/login`,
            data: login
        }).then(
            (response) => {
                console.log("success", response);
                setAuthToken(response);
                return response.data;
            },
            (error) => {
               console.log("error",error);
               throw error;
            }
        );
    };    
});
       return $http({
            method: 'POST',
            url: `http://ddd.com/login`,
            data: login
        }).then(
            (response) => {
                console.log("success", response);
                setAuthToken(response);
                return response.data;
            },
            (error) => {
               console.log("error",error);
               if (error.status==302) {
                   console.log("Converting erroneous API response");
                   error.status==200;
                   return error.data;
               };
               //ELSE
               throw error;
            }
        );