0

我试图弄清楚为什么我的 $.getJSON 方法似乎不起作用,但 $.ajax 工作得很好。首先,这是我的 getJSON 调用:

$.getJSON("http://localhost:1505/getServiceImageList?callback=loadImagesInSelect", loadImagesInSelect);

您可以看到我已经尝试将回调参数直接添加到查询字符串(也尝试不在字符串上),并且我添加了对我的 js 文件中定义的回调方法的引用。

这是 $.ajax 调用,它工作得很好:

function getImages() {
            $.ajax({
                type: "GET",
                url: $('#txt_registry_url').val(),
                dataType: "jsonp",
                success:loadImagesInSelect ,
                error:function (xhr, ajaxOptions, thrownError) {
                    alert(xhr.status);
                    alert(thrownError);
                }

            });
        }

在此示例中,从文本框中提取的 url 与直接调用 getJSON 中的相同。当方法调用完成时,successMethod 被调用并且一切都处理得很好。

虽然我很喜欢使用这两种方法中的后者,但文档表明 getJSON 似乎是首选的速记方式。

任何人都可以解释一下我在速记方法中缺少什么以使其全部工作吗?

提前致谢。

4

2 回答 2

0

据我了解你需要使用

$.getJSON("http://localhost:1505/getServiceImageList?callback=?", loadImagesInSelect);

jQuery 将负责为回调命名,然后将调用转发给 loadImagesInSelect

我希望这会帮助杰罗姆·瓦格纳

于 2010-04-07T21:31:26.743 回答
0
$.getJSON("http://localhost:1505/getServiceImageList?data=yes&callback=?", loadImagesInSelect);

function loadImagesInSelect(json) {
   //whatever you want on success
}

然后使用 php 的服务器端(注意:我将数据添加到 GET 查询字符串)

$data = getDataAsJSON($_GET['data']);
echo $_GET['callback'] . '(' . $data . ');';

getJSON 需要看到“callback=?”

我会坚持使用 $.ajax

于 2010-04-07T21:44:27.243 回答