我正在开发一个restlet服务和一个前端。我通过JSON对象交换服务器和客户端之间的信息,但我无法访问客户端(JavaScript)上的数据。
服务器使用所需信息创建一个JSON对象:
final JSONObject response = new JSONObject();
JSONArray content = new JSONArray(list);
response.put("content", content);
return response.toString();
System.out.println(response.toString());
return response.toString();
当调用服务时,syso打印:
{"content":["Hospital","Fabrica"]}
然后将JSON对象发送到客户端,但它无法访问内容记录。客户端代码如下:
UpRankApp.service('primaryUseService', ['$resource', 'globalService', function($resource, globalService){
this.getAvailablePrimaryUses = function(){
var api = $resource("http://localhost:9192/getListPrimaryUse",
{
callback: "JSON_CALLBACK"
},
{
post: {method: "JSON" }
}
);
return globalService.getMessageContent(api.get());
//return [ 'saude', 'comercio', 'industria' ];
};
}]);
UpRankApp.service('globalService', [function(){
this.getMessageContent = function(message){
console.log(message);
console.log(message.content);
if(message.hasOwnProperty('content')){
console.log(message.content);
return message.content
}else if(message.hasOwnProperty('error')){
console.log(message.error);
}else{
console.log("rien");
}
}
}]);
我可以看到客户端发送的数据在getMessageContent()上运行console.log但我无法访问它。 firefox上的控制台日志输出如下:
Object {content:Array [2],$ promise:Object,$ resolved:true} 未定义
使用chrome是一回事,但内容记录不能直接在JSON对象中看到(但数据存在)
我已经尝试使用以下方法将消息转换为json:
var data = JSON.parse(message);
if (data.status == 'success') { console.log('IT WORKS!');}
但是我收到一条错误,说“错误:JSON.parse:JSON数据第1行第2列的意外字符”,这意味着该变量已经是JSON对象吗? 有没有人知道发生了什么?我试图找到这个问题的解决方案3天,我找不到解决方案。
提前致以最诚挚的问候和谢意!