我正在尝试从angularjs控制器向后端休息服务提交表单,并获得不受支持的媒体类型,即使我提交了内容类型的标题。
错误:
无法加载资源:服务器响应状态为415 (不支持的媒体类型)
角度控制器:
$scope.formData = {
'name':'test',
'email':'test@test.com'
};
function get(restUrl, formData) {
function success(result) {
return result.data;
}
function error(err) {
return err.data;
}
return $http({
url: restUrl,
headers: { 'Content-Type': 'application/json; charset=UTF-8'},
method: "GET",
timeout: 200000,
params: formData
}).then(success, error);
}
Java表单类,
public class SearchForm {
private String name;
private String email;
public SearchForm() {
super();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
休息控制器,
@Named
@Singleton
@Path("/api/v1/")
public class SearchController {
@GET
@Path("/getAll")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public List<ResultDto> getReconLogs(@Context final HttpServletRequest request, final SearchForm searchForm) {
}
}
Angular控制器中是否需要任何内容或表单类中的任何注释?
由于
答案 0 :(得分:0)
服务器API或定义问题。您的客户端是可以的,但function success(result) { return result.data; } function error(err) { return err.data; }
承诺不会像这样使用。您无法从成功或错误中返回result.data。你必须分配或捕获它或做一些操作。
尝试此设置定义: