jQuery $.ajax 函数可以工作,但像 $.get/$.getJSON 这样的速记函数不能——使用 jQuery 1.7.2 和 Grails 2.1 和 twitter bootstrap
Posted
技术标签:
【中文标题】jQuery $.ajax 函数可以工作,但像 $.get/$.getJSON 这样的速记函数不能——使用 jQuery 1.7.2 和 Grails 2.1 和 twitter bootstrap【英文标题】:jQuery $.ajax function works, but shorthand functions like $.get/$.getJSON do not - using jQuery 1.7.2 and Grails 2.1 and twitter bootstrap 【发布时间】:2012-09-08 06:37:23 【问题描述】:我的第一个问题。
有人对使用 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
);
但这两个都不起作用:
('#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
);
另一件事是用createLink
替换url
也不起作用。
url: "/book/autocompleteBooks"
url: "$createLink(controller: 'book', action: 'autocompleteBooks')"
我宁愿使用速记函数使代码更易于阅读,基本上是为了美观:)
【问题讨论】:
究竟是什么不起作用?任何错误信息?请求是否真的被提出?有回应吗?等等…… 【参考方案1】:$.get()
的结构如下:
$.get(
"/book/autocompleteBooks", // url
queryString: query, // data
function(data) // success
// code
,
'json' // dataType
);
而$.getJSON()
是:
$.getJSON(
"/book/autocompleteBooks", // url
queryString: query, // data
function(results) // success
// code
);
了解更多关于 $.get() 和 $.getJSON()
【讨论】:
太棒了。我的愚蠢错误,我将来会更加专注。谢谢你。我会投票,但我还没有被允许。【参考方案2】:请阅读您尝试使用的两种速记方法的文档。他们不接受选项对象作为第一个参数。
【讨论】:
【参考方案3】:$.get() $.ajax() 方法的 id 简写。但实际上 $.get 的 syantax 是这样的
$.get('ajax/test.html', function(data) $('.result').html(数据); alert('加载已执行。'); );
$.ajax() 被称为
$.ajax( 网址:网址, 数据:数据, 成功:成功, 数据类型:数据类型 );
有关 $.get() 的更多信息,请参阅 http://api.jquery.com/jQuery.get/
【讨论】:
以上是关于jQuery $.ajax 函数可以工作,但像 $.get/$.getJSON 这样的速记函数不能——使用 jQuery 1.7.2 和 Grails 2.1 和 twitter bootstrap的主要内容,如果未能解决你的问题,请参考以下文章