我想从我的服务器访问POST方法,但是当我记录响应时,它总是返回status = 0,任何人都可以帮助我或给我一个建议吗? 注意:我已经在Postman中尝试了我的方法,无论如何它的作品
nameApp.controller('loginCtrl', ['$scope','$location','Flash','$sessionStorage', '$cookieStore','$http',function (scope,location,Flash,sessionStorage,cookieStore,http) {
scope.nim='';
scope.pass='';
if(cookieStore.get('current')!=null){
location.path('/homepage')
}
scope.login = function() {
if((scope.nim=='')){
Flash.create('danger', 'Invalid Username / Password', 'custom-class');
}else{
http.post('http://localhost:8084/iec3/rest/users/login',{'username':'admin','password':'bukanadmin'},{headers: {'Content-Type': 'application/json'}
}).then(function successCallback(response) {
console.log("GREAT");
}, function errorCallback(response) {
console.log(response)
});
}
}
}]);
@Path("/login")
@POST
@Consumes(value = MediaType.APPLICATION_JSON)
@Produces(value = MediaType.APPLICATION_JSON)
public Response login(User user) {
UserDao ud = new UserDao();
User dariDB = ud.login(user.getUsername(), user.getPassword());
dariDB.setPassword("");
return Response.ok(dariDB)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization")
.header("Access-Control-Allow-Credentials", "true")
.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, HEAD")
.header("Access-Control-Max-Age", "1209600")
.build();
}
Object {data:null,status:0,headers:dd /<(),config:Object,statusText:""}
答案 0 :(得分:0)
您的ajax请求似乎没有达到您的控制器方法,通常在取消请求时返回状态0。检查控制器方法中的@path值和http://localhost:8084/iec3/rest/users/login映射。
有关状态0的更多详细信息 http://www.w3.org/TR/XMLHttpRequest/#the-status-attribute
答案 1 :(得分:0)
您需要验证您的请求是否已到达服务器。您的登录方法是否被调用?如果您在同一台主机上,则无需传递完整的URL,您可以通过其路径直接呼叫您的api。
对于新手,我建议你避免使用$http
快捷方式。为了更好地理解和阅读,您应该使用$http
之类的
$http({
method: 'POST',
url: 'http://localhost:8084/iec3/rest/users/login',
data: {
username:'admin',
password:'bukanadmin'
},
headers: {
'Content-Type': 'application/json'
}
}).then(function successCallback(response) {
console.log("GREAT");
}, function errorCallback(response) {
console.log(response)
});