2017-04-05 71 views
2

我是Spring MVC的新手,我正在構建一個With angularjs和Spring Boot。Angularjs發佈彈簧啓動電話

當我試圖通過angularjs進行POST調用時,出現此錯誤。 但是,當我嘗試與郵遞員它正在與x-www-form-urlencoded,但與表單數據我得到下面的錯誤。

郵遞員錯誤

{ 
 
    "timestamp": 1491406541851, 
 
    "status": 500, 
 
    "error": "Internal Server Error", 
 
    "exception": "org.springframework.dao.DataIntegrityViolationException", 
 
    "message": "PreparedStatementCallback; SQL [INSERT INTO employeedetails(Name, Company, Location,Age) VALUES (?,?,?,?)]; Column 'Name' cannot be null; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'Name' cannot be null", 
 
    "path": "/createEmployee" 
 
}

在Angularjs

$http({ 
 
\t \t  method: 'POST', 
 
\t \t  url: "/createEmployee", 
 
\t \t  headers: {'Content-Type': 'application/x-www-form-urlencoded'}, 
 
\t \t  data: $scope.employee, 
 
\t \t }).success(function() {});

HTTP調用

\t 
 
\t @RequestMapping(value="/createEmployee", method=RequestMethod.POST,consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
 
\t public void createEmployee(employeeDetails empl) 
 
\t { 
 
\t \t System.out.println(empl.getAge()); 
 
\t \t empdao.createEmployee(empl); 
 
\t }

+0

因爲在你的春天API表示您接受媒體類型 '應用程序/ x-WWW的形式了urlencoded' 而不是 '表單數據'。如果你想要它作爲表單數據發送,那麼你需要改變你的spring API。 – kaushlendras

+0

你可以給我代碼改變嗎 –

+0

在哪種類型中,你想發送數據? 'application/x-www-form-urlencoded'或'form-data'? – kaushlendras

回答

0
@RequestMapping(value="/createEmployee", method=RequestMethod.POST,consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) 
public void createEmployee(@RequestBody @Valid employeeDetails empl) 
{ 
    System.out.println(empl.getAge()); 
    empdao.createEmployee(empl); 
} 
+0

請編輯您的答案,包括一些解釋。僅有代碼的答案對未來SO讀者的教育很少。您的答案可能會因爲低質量而進入審覈隊列。 – Jens