我無法在Spring中使用AngularJs和REST服務進行POST。無法使用Angular.JS執行POST Rest服務
Index.HTML只是一個簡單的表單,用於將數據提交到Rest Services並在同一頁面上打印出來。
我收到以下錯誤:
無法加載資源:服務器400(錯誤請求)的狀態
App.js迴應
var helloApp = angular.module("SG", [ 'ngResource' ]);
helloApp.controller("HttpController", [ '$scope', '$resource',
\t \t function($scope, $resource) {
\t \t \t $scope.users = [];
\t \t \t
\t \t \t $scope.saveUser = function(){
\t \t \t \t $scope.users.push({ 'name':$scope.name, 'username': $scope.username, 'size':$scope.size, 'email':$scope.email }); \t \t
\t \t \t \t // Create a resource class object
\t \t \t \t //
\t \t \t \t var User = $resource('/upload');
\t \t \t \t // Call action method (save) on the class
\t \t \t \t //
\t \t \t \t User.save({name:$scope.firstname,username:$scope.username,size:$scope.size,email:$scope.email}, function(response){
\t \t \t \t \t $scope.message = response.message;
\t \t \t \t });
\t \t \t \t
\t \t \t \t $scope.firstname='';
\t \t \t \t $scope.username='';
\t \t \t \t $scope.size='';
\t \t \t \t $scope.email='';
\t \t \t }
\t \t \t
\t \t } ]);
\t \t
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html ng-app="SG">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<link type="text/css" rel="stylesheet" href="css/bootstrap-theme.min.css">
<link type="text/css" rel="stylesheet" href="css/bootstrap.min.css">
<script type="text/javascript" src = "jquery.js"></script>
<script type="text/javascript" src = "bootstrap.min.js"></script>
<script type="text/javascript" src = "lib/angular.min.js"></script>
<script type="text/javascript" src = "lib/angular-resource.min.js"></script>
<script type="text/javascript" src = "app.js"></script>
</head>
<body ng-app = "SG" ng-controller="HttpController" >
<div class="intro-message">
<h1>First Page</h1>
<h3></h3>
<div>
<section>
<ul class = "nav nav-pills">
<li ng-class ="{active:tab ===1}"> <a href ng-click="tab =1">Submit job</a></li>
</ul>
</section>
</div>
<div class = "panel" ng-show="tab ===1">
<div class="container">
<div class="col-sm-8 col-sm-offset-2">
<!-- PAGE HEADER -->
<div class="page-header"><h1>Open Source Form Validation</h1></div>
<!-- FORM -->
<!-- pass in the variable if our form is valid or invalid -->
<form name="userForm" ng-submit="saveUser()" novalidate> <!-- novalidate prevents HTML5 validation since we will be validating ourselves -->
<!-- NAME -->
<div class="form-group">
<label>Name</label>
<input type="text" name="name" class="form-control" ng-model="name" required>
<p ng-show="userForm.name.$invalid" class="help-block">You name is required.</p>
</div>
<!-- USERNAME -->
<div class="form-group">
<label>Username</label>
<input type="text" name="username" class="form-control" ng-model="username" ng-minlength="3" ng-maxlength="8">
\t \t \t <p ng-show="userForm.name.$invalid" class="help-block">You name is required.</p>
</div>
<!-- EMAIL -->
<div class="form-group">
<label>Email</label>
<input type="email" name="email" class="form-control" ng-model="email">
<p ng-show="userForm.email.$invalid" class="help-block">Enter a valid email.</p>
</div>
<!-- NO OF HOURS -->
<div class="form-group">
<label>No of Hours</label>
<input type="number" name="size" class="form-control" ng-model="size" ng->
</div>
<!-- SUBMIT BUTTON -->
<div class="form-group">
<button type="submit" class="btn btn-primary" ng-disabled = "userForm.$invalid">Submit</button>
</div>
</form>
\t \t \t \t
\t \t \t \t \t \t \t {{$scope.message}}
\t \t \t \t \t \t
\t \t \t </div><!-- col-sm-8 -->
</div><!-- /container -->
</body>
</html>
RestApiController.Java
@Controller 公共類RestApiController {
@RequestMapping(value="/upload", method=RequestMethod.GET)
public @ResponseBody String provideUploadInfo() {
return "Test Get run to this URL.";
}
@RequestMapping(value="/upload", method=RequestMethod.POST)
public @ResponseBody String handleFileUpload(@RequestParam("name") String userName,
@RequestParam("username") String jobName, @RequestParam("size") String nodes,
@RequestParam("email") String email){
System.out.println("hello");
return "The company data (name: " + userName + ", employees: "+ jobName + ", headoffice: " + email + ") is saved";
}
}
如果您在Web開發人員工具中檢查什麼是請求方法失敗?它是GET POST還是OPTIONS? – maurycy