Jquery 中 $.getJSON的用法


之前類似的方法用過 $.post, $.get,$.ajax,還是第一次用這個 $.getJSON。

前三個都是用作異步請求的,那么最后一個呢?其實也是異步請求的,和 $.get 最類似,因為他也是將數據放在了 url上面。

代碼:

// 頁面一加載就請求服務器,獲取當前用戶的筆記本數據
function loadPageNotebooks() {
    var page = $(document).data('page');
    var userId = getCookie('userId');
    var url = 'notebook/page.do';
    var data = {
        userId : userId,
        page : page
    };
    // 從服務器拉取數據
    $.getJSON(url, data, function(result) {
        console.log(result);
        if (result.state == 0) {
            var notebooks = result.data;
            showPageNotebooks(notebooks, page);
            $(document).data('page', ++page);
        } else {
            alert(result.message);
        }
    });
}

后台代碼:

    /**
     * 獲取當前用戶的全部筆記本,以json的形式響應回去
      * @param userId
     * @param page
     * @return
     */
    @RequestMapping("/page.do")
    @ResponseBody
    public Object page(String userId, Integer page) {
        List<Map<String, Object>> list = notebookService.listNotebooks(userId, page);
        return new JsonResult(list);
    }

小總結:

$.getJSON() 是專門為 ajax 獲取 json 數據而設置的,並且支持"跨域"調用,其語法的格式為:

getJSON( url , [data] , [callback] )

其中三個分別為:

  • url:string類型, 發送請求地址
  • data :可選參數, 待發送 Key/value 參數 ,同 get,post 類型的 data
  • callback :可選參數,載入成功時回調函數,同 get,post 類型的 callback

        JSON 是一種理想的數據傳輸格式,它能夠很好的融合與 JavaScript 或其他宿主語言,並且可以被 JS 直接使用。使用 JSON 相比傳統的通過 GET、POST 直接發送“裸體”數據,在結構上更為合理,也更為安全。至於 jQuery 的 getJSON() 函數,只是設置了 JSON 參數的 ajax() 函數的一個簡化版本。這個函數也是可以跨域使用的,相比 get()、post() 有一定優勢。另外這個函數可以通過把請求 url 寫成 "myurl?callback=X" 這種格式,讓程序執行回調函數X。
注:

      數據最終還是通過 url 后面通過 get 方式發送數據出去的,這就決定了,發送的 data 數據量不能太多【get方式最大4KB】,否則造成 url 太長接收失敗(getJSON方式是不可能有post方式遞交的)。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM