我已创建了一项服务,我将其用于登录:
编辑:添加了成功'和'错误'代码。
编辑2:我正在开发一个包含Javascript / AngularJS的iOS移动应用程序。那么有没有办法将错误视为警报..
.service('Login', function($http, $q, $httpParamSerializerJQLike) {
return {
loginUser: function(ipAdd, name, pw) {
var sendurl = 'http://' + ipAdd + ':8080/loginuser/user.cgi';
var postData = {
'ACTION' : 'login',
'LOGIN' : name,
'PASSWORD' : pw
};
//what is the mistake here?
return $http({
method : 'POST',
url : sendurl,
data : $httpParamSerializerJQLike(postData),
headers : { 'Content-Type': 'application/x-www-form-urlencoded'}
}).success(function(response) {
var x2js = new X2JS();
var jsonObj = x2js.xml_str2json(response.data);
if (typeof jsonObj === 'object') {
alert("here:1");
return jsonObj;
} else {
alert("here:2");
// invalid response
return $q.reject(jsonObj);
}
}).error(function(response) {
//do error
//comes here when no internet connection is found..
alert("here:3");
return $q.reject(response.data);
});
}
}
})
我还在app.js中包含了这个:
var app = angular.module("myApp", ['starter.services'],function($httpProvider){
$httpProvider.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=utf-8';
});
我的实际网址如下:
'http://' + ipAdd + ':8080/loginuser/user.cgi?ACTION=login&LOGIN=' + name + '&PASSWORD=' + pw;
我也试过这种方法:https://stackoverflow.com/a/25570077/5876598
我的服务没有返回任何东西.. 我想知道我在网址形成或发送数据时是否犯了错误。
感谢。
答案 0 :(得分:0)
了解错误来源的最佳方法是检查导航器开发者控制台上的“网络”标签。
假设您在Linux或Mac上运行,您还可以尝试使用CURL来了解您要尝试访问的网址的返回值。
我们无法帮助您解决代码问题。
答案 1 :(得分:0)
我在我的服务中添加了延期承诺。
我还将"success().error()"
更改为".then(function(data, status, headers, config){})
。我不知道为什么当我使用成功和错误时它没有用。
答案 2 :(得分:0)
实际上以前我注意到在服务中呈现承诺本身时会遇到一些问题。遵循以下结构
.service('Login', function($http, $q, $httpParamSerializerJQLike) {
return {
loginUser: function(ipAdd, name, pw) {
var sendurl = 'http://' + ipAdd + ':8080/loginuser/user.cgi';
var postData = {
'ACTION' : 'login',
'LOGIN' : name,
'PASSWORD' : pw
};
//what is the mistake here?
return $http({
method : 'POST',
url : sendurl,
data : $httpParamSerializerJQLike(postData),
headers : { 'Content-Type': 'application/x-www-form-urlencoded'}
});
}
}
})
.controller('SomeCtrlName',function(Login){
//pass your parameter to below service.
Login.loginUser().then(function success(){
//write success code here
},function error(){
//write error code here
)};
})