我只是JS的初学者。我正在尝试使用php RESTful Web服务从数据库登录。如果登录凭据匹配,则显示主页的用户。 我得到的错误是:TypeError:无法读取属性' code'在services.js中未定义:65 我该怎么做才能解决这个错误?为什么会发生这种错误?
我的services.js是:
.service('LoginService', function ($q, $http) {
return {
loginUser: function (loginData) {
var deferred = $q.defer(),
promise = deferred.promise;
$http({
url: 'http://localhost/login.php',
method: "POST",
data: loginData,
headers: {'Content-Type': 'application/json'}
})
.then(function (response) {
if (response.data.error.code === "000") {
console.log("User login successful: " + JSON.stringify(response.data));
deferred.resolve(response.data);
} else {
console.log("User login failed: " + JSON.stringify(response.data.error));
deferred.reject(response.data);
}
}, function (error) {
console.log("Server error on Login " + JSON.stringify(error));
deferred.reject(error);
});
promise.success = function (fn) {
promise.then(fn);
return promise;
};
promise.error = function (fn) {
promise.then(null, fn);
return promise;
};
return promise;
}
};
});
答案 0 :(得分:1)
似乎response.data.error
正在返回undefined
(或者没有返回,导致undefined
),这就是原因,如果您尝试阅读response.data.error.code
,那么得到那个错误。
您可以尝试在if (response.data.error.code === "000") {
上设置一个断点,看看response
中的输出是什么,并相应地检查错误。