我试图从angularjs控制器向后端休息服务提交一个表单,并获得不支持的媒体类型,即使我提交内容类型的 Headers .
错误:
无法加载资源:服务器响应状态为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控制器中是否需要任何内容或表单类中的任何注释?
谢谢
1 回答
服务器API或定义问题 . 你的客户端是好的,但不是
function success(result) { return result.data; } function error(err) { return err.data; }
承诺不是这样使用的 . 您无法从成功或错误中返回result.data . 您必须分配或捕获它或进行一些操作 .试试这个来设定定义:
https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
Http 415 Unsupported Media type error with JSON