【发布时间】:2016-01-13 05:41:24
【问题描述】:
我正在尝试通过单击“编辑”按钮将 intakeanswers.json 从 angularjs 表单发送到 java Web 服务,但我收到一个错误:“405 方法不允许”。我的 JSON 好吗?
Angular 和 HTML
<!DOCTYPE html>
<html ng-app="myappp">
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<script src="lib/js/angular.min.js"></script>
<script src="lib/js/angular-route.min.js"></script>
<script src="lib/js/angular-ui-router.min.js"></script>
</head>
<body ng-controller="edit_ctrl">
<script type="text/javascript">
var myapp=angular.module('myappp',[])
myapp.controller('edit_ctrl',function($scope,$http){
$http.get("data/intakeanswers.json").success(function(data){
$scope.dataJson=data;
});
$scope.doEdit=function(){
$scope.dataJs = angular.copy($scope.dataJson);
var dat=angular.toJson($scope.dataJs);
alert("hi");
$http({
url : "http://localhost:8080/...../FormAnswers/Answers",
method: 'POST',
data : dat,
headers: {'Content-Type': 'application/Json'},
})};
});
</script>
<button ng-click="doEdit()">Edit</button>
</body>
</html>
Java REST Web 服务代码:
@Path("/FormAnswers")
public class FormAnswersService {
private static final Logger logger = Logger.getLogger(FormAnswersService.class);
@GET
@Path("/Answers")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_JSON)
public String getAnswers(String id) {
try{
System.out.println(id);
}
catch(Exception e){
logger.error(e.getMessage());
}
return "response";
}
JSON
{
"User_Id": "abcd",
"Form_Name": "Form",
"Answers": [{
"Question_Id": "1",
"Answer" :"a"
},
{
"Question_Id": "2",
"Answer" :"b"
},
{
"Question_Id": "3",
"Answer" :"c"
}
],
"Section_Name": "Project Overview",
"Answers": [{
"Question_Id": "4",
"Answer" :"d"
},
{
"Question_Id": "5",
"Answer" :"e"
},
{
"Question_Id": "6",
"Answer" :"f"
}
]
}
【问题讨论】:
-
headers: {'Content-Type': 'application/Json'},应该是headers: {'Content-Type': 'application/json'}顺便说一句,为什么你的 json 中有多个答案? -
我将 {'Content-Type': 'application/Json'} 更改为{'Content-Type': 'application/json'} 但仍然遇到同样的错误
标签: java angularjs json resteasy