1. 程式人生 > >$.getJSON()回撥函式不起作用

$.getJSON()回撥函式不起作用

最近開發遇到一個問題,$.getJSON(url,data,function success(){})回撥函式不起作用,其中的回撥函式總是不能執行,程式碼如下:

var x = document.getElementsByName(data);
var i;
$.ajaxSettings.async = false;
   for (i = 0; i < x.length; i++) {
      var value=x[i].id;
      $.getJSON(ctx + '/sys/dict/description', {
         value: value
      }, function (data) {
      var
str = '&nbsp;<img src="/static/images/toolbox/description.png" title="'+data.value+'"/>'; $('.tooltip-description [desc='+value+']').append(str); });

開發所用環境springMVC,於是debug模式開始除錯,發現返回資料不是json格式,而回調函式,必須返回標準的JSON串,屬性和值都必須帶雙引號。例如{”name:”,”value”},於是在服務類裡對該請求所針對的方法進行修改,使返回值為map形式,儲存後測試,成功執行。

由於用到SpringMVC開發,發現一個問題,當Controller方法沒有@ResponseBody註解時,同樣會產生getJSON()回撥函式不起作用的錯誤,因為@ResponseBody 將內容或物件作為 HTTP 響應正文返回,並呼叫適合HttpMessageConverter的Adapter轉換物件,完成協議—物件 的轉換工作,並將其寫入輸出流。

PS:Spring預設的json協議解析由Jackson完成。