我是angularjs
的新手,我正在努力学习它但是我遇到了一些问题,实际上它们有两个问题:
第一个问题: $http.post
从不起作用,因为没有任何操作且没有响应。但是,$http.get
能够正常运作。
第二个问题:由于第一个问题,我通过$http.get
调用我的restful webservice,但Web服务响应状态始终为-1
。虽然Web服务能够成功完成其工作并始终响应数据为null,但任何人都可以帮助我。
这是我的角色部分:
var app = angular.module('myLogin',[]);
app.controller('loginController',function($scope,$http){
$scope.login=function(){
var username = $scope.username;
var password = $scope.pass;
$http.get("http://localhost:8080/spring/webservice/login/"+username+"/"+password)
.success(function(data,status){
alert("data : "+data);
alert("Data Inserted Successfully");
window.location.href = "chatScreen.html";
})
.error(function(data,status){
alert("Status: "+status);
window.location.href = "login.html";
});
}
});
这是我的网络服务:
/**
* web service part
*/
@RequestMapping(value="webservice/login/{name}/{pass}", method=RequestMethod.GET)
@ResponseStatus(value = HttpStatus.OK)
public ResponseEntity<String> weblogin(@PathVariable("name") String name, @PathVariable("pass") String pass)
{
System.out.print("username : "+name);
System.out.print(pass);
UserService service = new UserService();
List<UserBean> users = service.getUsers();
if(users!=null)
{
for(UserBean user : users)
if( ( user.getUsername().equals(name) ) && ( user.getPassword().equals(pass) ) )
{
System.out.print("success");
username = name;
//model.addAttribute("result", "Welcome to chat..");
MessageService messageService = new MessageService();
List<MessageBean> messages = messageService.getMessage(username);
String userMessages="";
if(messages != null)
{
for(MessageBean msg : messages)
userMessages +="\n"+msg.getSender() + ": " + msg.getMessage()+" \n";
}
else
userMessages +="You have no Messages !";
//model.addAttribute("whoSendToMe", userMessages);
return new ResponseEntity(HttpStatus.OK);
}
}
return new ResponseEntity<String>("faild", HttpStatus.NOT_FOUND);
}
答案 0 :(得分:2)
参考这可能会让您知道如何处理您的问题: -
<application android:allowBackup="true"
android:icon="@drawable/main_icon"
android:label="@string/main_name"
android:theme="@style/AppTheme" >
<activity android:name="com.foobar.MyActivity2"
android:taskAffinity="com.foobar.MyActivity2"
android:icon="@drawable/icon1"
android:label="@string/name1" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.foobar.MyActivity2"
android:taskAffinity="com.foobar.MyActivity2"
android:icon="@drawable/icon1"
android:label="@string/name2" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
分享您的代码,以便我们尝试解决它
答案 1 :(得分:0)
如果您使用方法GET并且收到-1,则通常表示您提供了错误的网址。
对于当时的POST方法,您应该使用以下语法:
return $http({
method: 'POST',
url: 'index.php/email/createDeliverable',
data: $.param({
csrfTokenName: --your token--,
userName: user.name,
password: password
}),
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
});
请记住添加标题部分。
您的服务器可能需要CSRF令牌验证,在这种情况下您需要传递它,请参阅我的示例:csrfTokenName: - 您的令牌 - ,