我用json作为输入和输出调用restful java服务,这允许CORS调用
我在以json格式发送参数时遇到了问题
get工作正常,没有参数的帖子也工作正常,但发布一些数据(有效负载),因为键值不起作用
不知道这个问题是什么,尝试以多种形式发送数据但仍然没有运气,是ajax调用或服务文件的问题,还是端口号或浏览器的问题?或任何配置问题?
这是示例java服务代码:
@Path("/getNotes")
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response getStates(Countries countries) {
logger.info("In UserRegistration Controller");
return Response.status(200).header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Headers", "Content-Type")
.header("Access-Control-Allow-Methods", "POST,OPTIONS")
.entity(userService.getStates(countries.getCountryId()))
.build();
}
和js代码:
callLocal: function (callback) {
alert("in function");
// $http.post('http://domain//server/rest/dashboard/Notes')//post with out any data //working fine giving output and output format is jsu a string not in json
var payload = {"noteId": 251};
$http({method: "POST",
crossDomain: true,
url: " http://domain/server/rest/register/getnotes",
dataType: 'json',
//contentType: "application/json;charset=utf-8",
//processData: true,
// data: JSON.stringify({"noteId": 251}),
data: {"noteId": 251},
//data: $.param({"noteId": 251}),
//data: $.param(payload),
// headers: {
// 'Content-Type': 'application/json; charset=utf-8'
// }
// headers: {'Content-Type': 'application/json'}
// header("Access-Control-Allow-Origin", "*")
// .header("Access-Control-Allow-Headers", "Content-Type")
// .header("Access-Control-Allow-Methods", "POST,OPTIONS")
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json; charset=utf-8'
}
})
.success(function (data) {
alert("S");
alert(JSON.stringify(data));
callback(data);
})
.error(function (data, status, headers, config) {
alert("No data json"+status);
console.log(status);
});
}
状态响应为:0,控制台错误为
XMLHttpRequest无法加载http://domain/server/rest/register/getnoteId。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://www.domain.net'因此不允许访问。