2010-04-07 3 views
0

Я пытаюсь понять, почему мой метод $ .getJSON, похоже, не работает, но $ .ajax работает просто отлично. Во-первых, здесь мой getJSON вызов:JSON/JSONP в JQuery

$.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 является предпочтительным сокращенным способом выполнения действий.

Может кто-нибудь объяснить, что мне не хватает по сокращенному методу, чтобы все это работало?

Заранее спасибо.

ответ

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

+0

спасибо, что похоже на работу, когда я заменяю метод обратного вызова? – dotnetgeek

0

от того, что я понимаю, что вам нужно использовать

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

JQuery будет заботиться о присвоении имени обратного вызова, а затем переадресации вызова на loadImagesInSelect

Я надеюсь, что это поможет Jerome WAGNER

 Смежные вопросы

  • Нет связанных вопросов^_^