Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSONP仅使用命名回调函数_Javascript_Json_Jsonp - Fatal编程技术网

Javascript JSONP仅使用命名回调函数

Javascript JSONP仅使用命名回调函数,javascript,json,jsonp,Javascript,Json,Jsonp,我已经让JSONP使用匿名函数,但无法让它使用命名函数。此代码起作用(警报显示的数据正确): 但是,此代码不起作用(不显示警报): 你能解释一下为什么最后的代码不起作用吗 编辑:我拿出了一个不相关的示例我不确定省略回调是否是正确的用法(或者,至少,我找不到任何文档来定义如果没有提供回调会发生什么)。如果要使用命名函数作为回调函数,可以执行以下操作: function dat(data) { alert(data.baz) } $.getJSON('http://example.c

我已经让JSONP使用匿名函数,但无法让它使用命名函数。此代码起作用(警报显示的数据正确):

但是,此代码不起作用(不显示警报):

你能解释一下为什么最后的代码不起作用吗


编辑:我拿出了一个不相关的示例

我不确定省略回调是否是正确的用法(或者,至少,我找不到任何文档来定义如果没有提供回调会发生什么)。如果要使用命名函数作为回调函数,可以执行以下操作:

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');