Javascript JSONP仅使用命名回调函数
我已经让JSONP使用匿名函数,但无法让它使用命名函数。此代码起作用(警报显示的数据正确): 但是,此代码不起作用(不显示警报): 你能解释一下为什么最后的代码不起作用吗Javascript JSONP仅使用命名回调函数,javascript,json,jsonp,Javascript,Json,Jsonp,我已经让JSONP使用匿名函数,但无法让它使用命名函数。此代码起作用(警报显示的数据正确): 但是,此代码不起作用(不显示警报): 你能解释一下为什么最后的代码不起作用吗 编辑:我拿出了一个不相关的示例我不确定省略回调是否是正确的用法(或者,至少,我找不到任何文档来定义如果没有提供回调会发生什么)。如果要使用命名函数作为回调函数,可以执行以下操作: function dat(data) { alert(data.baz) } $.getJSON('http://example.c
编辑:我拿出了一个不相关的示例我不确定省略回调是否是正确的用法(或者,至少,我找不到任何文档来定义如果没有提供回调会发生什么)。如果要使用命名函数作为回调函数,可以执行以下操作:
function dat(data) {
alert(data.baz)
}
$.getJSON('http://example.com/test.aspx?foo=bar&callback=?', dat);
您应该能够通过以下方式满足jQuery的要求:
$.getJSON('http://example.com/test.aspx?foo=bar&callback=?', dat);
在看过jquery的ajax代码之后,我认为您想要做的是 照戴夫·沃德和哈米什的建议去做。或者,我认为您可以像这样将函数名作为字符串传递,因为它被附加到窗口中,jquery查看函数名 或者,您可以使用它将url添加为脚本标记,这对于您尝试执行的操作很好
function dat(data) {
alert(data.baz)
}
$.getScript('http://example.com/test.aspx?foo=bar&callback=dat');
你确定最后一个不行吗?它实际上和第一个一样。@Felix,你说得对。。。我再次尝试了这个例子,现在它起作用了,所以我把它排除在外。。。但是仍然有一个不起作用(我也再次测试了它以确定)@BaroqueBobcat,它就在getJSON调用之前,它在
$.getJSON('http://example.com/test.aspx?foo=bar&callback=?', dat);
function dat(data) {
alert(data.baz)
}
$.getJSON('http://example.com/test.aspx?foo=bar&callback=?', 'dat');
function dat(data) {
alert(data.baz)
}
$.getScript('http://example.com/test.aspx?foo=bar&callback=dat');