jQuery $ .ajax函数有效,但像$ .get/$.getJSON这样的速记函数没有 - 使用jQuery 1.7.2和Grails 2.1以及twitter bootstrap

min*_*ess 3 javascript jquery grails twitter-bootstrap grails-2.0

我的第一个问题.

是否有任何人使用速记函数进行ajax请求有任何问题?

这有效:

('#book').typeahead({
    source: function(typeahead, query){
        return $.ajax({
            url: "/book/autocompleteBooks",
            type: "GET",
            dataType: "JSON",
            data: {queryString: query},
            success: function(results){
                typeahead.process(results);
            }
        });
    },
    property: "title",
    onselect: onSelectBook
});
Run Code Online (Sandbox Code Playgroud)

但这两个都不起作用:

('#book').typeahead({
    source: function(typeahead, query){
        return $.get({
            url: "/book/autocompleteBooks",
            dataType: "JSON",
            data: {queryString: query},
            success: function(results){
                typeahead.process(results);
            }
        });
    },
    property: "title",
    onselect: onSelectBook
});

('#book').typeahead({
    source: function(typeahead, query){
        return $.getJSON({
            url: "/book/autocompleteBooks",
            data: {queryString: query},
            success: function(results){
                typeahead.process(results);
            }
        });
    },
    property : "title",
    onselect: onSelectBook
});
Run Code Online (Sandbox Code Playgroud)

另一件事是,替代urlcreateLink不还正常工作.

url: "/book/autocompleteBooks"

url: "${createLink(controller: 'book', action: 'autocompleteBooks')}"
Run Code Online (Sandbox Code Playgroud)

我宁愿使用速记函数来使代码更简单易读,而且基本上用于美观:)

the*_*dox 8

结构$.get()如:

$.get(
  "/book/autocompleteBooks",     // url
  {queryString: query},          // data
  function(data) {               // success
    // code
  },
  'json'                         // dataType
);
Run Code Online (Sandbox Code Playgroud)

$.getJSON()是:

$.getJSON(
     "/book/autocompleteBooks",   // url
     {queryString: query},        // data
     function(results){           // success
       // code
     }
);
Run Code Online (Sandbox Code Playgroud)

阅读更多关于$ .get()$ .getJSON()的信息