我试图使用JSON从控制器向Spring MVC中的视图发送一些数据,这是控制器中的代码:
@RequestMapping(value="/twitter/searchgeomap", method=RequestMethod.GET)
public String TwitterSearchGeoJSON(@RequestParam("query") String query) throws TwitterException {
List<Status> tweets = twitterService.twitterSearchGeo(query);
List<String> geoList = new ArrayList<String>();
JSONObject json = new JSONObject();
for (Status tweet : tweets) {
GeoLocation geo = tweet.getGeoLocation();
String Latitude = String.valueOf(geo.getLatitude());
String longitude = String.valueOf(geo.getLongitude());
String text = tweet.getText();
String place = tweet.getPlace().toString();
geoList.add(text);
geoList.add(Latitude);
geoList.add(longitude);
geoList.add(place);
String key = String.valueOf(tweet.getId());
json.accumulate(key, geoList);
}
return json.toString();
}
以下是我在视图中阅读JSON的方法:
$(document).ready(function() {
$.getJSON("searchgeomap?query=obama", function(data){
console.log("hi");
});
});
第一个问题是我如何设置参数(查询)所以我不需要将它放入请求“searchgeomap?query = obama”?而另一个问题是console.log("hi");
不起作用,我无法在控制台中看到输出,为什么函数内部没有任何内容被执行?我做错了什么?
答案 0 :(得分:1)
好的第一个问题..你可以提供数据作为对象
$.getJSON("searchgeomap",{query:"obama"}, function(data){
//--^^url--------^^---object
console.log("hi");
});
并且对于你的第二个问题..你在这里使用的网址是否在同一个域中..看起来你正在调用twitter函数..无论如何,那么你需要查看ajax jsonp,否则它就赢了'工作
答案 1 :(得分:1)
我认为您在控制器签名中缺少@ResponseBody注释,如此
public @ResponseBody String TwitterSearchGeoJSON(@RequestParam("query") String query) throws TwitterException