我有以下角度代码:
<button ng-click="ctrl.submit(light)">Switch</button>
按钮点击按以下方式处理:
self.submit = function(light) {
console.log("==============================");
console.log("clicked button: ", light);
console.log("==============================");
$http.post('/ARHomeAutomation/rest/light/state/', light).then(function(response) {
console.log('headers: ' , response.headers);
console.log('status: ', response.status);
console.log('config: ', response.config);
console.log('data: ', response.data);
self.state = response.data;
}, function(errResponse) {
console.error('Error while updating light state');
})
console.log('User clicked submit with: ', light.id );
console.log('response: ', self.light);
}
在服务器端,我有以下方法应该响应请求:
@POST
@Path("/state/")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.TEXT_HTML)
public String setStateOfLight(JSONObject aLight) {
if(aLight == null) {
return "It's a null";
} else {
System.out.println("content: " + aLight);
}
JSONObject jsonObject = new JSONObject();
//Update the state of the light with the given id
for(Light light: lightCollection) {
// .....
}
return getLightsStateAsJSON();
}
当我点击我的按钮时,我收到以下消息:
根据firefox我在我的请求中发送JSON。当我检查发送数据时,至少它会这样说。
这是我的标头请求数据:
我在这里缺少什么?
答案 0 :(得分:0)
看起来标题内容类型设置为text / html,即使正文是JSON。我想你需要在Angular代码的帖子中的某个地方将content-type设置为application / json。