2009-04-14 2 views
2

Я использую JSONP для получения данных с сервера.jQuery: JSONP: Execute Received Info

Более типичный метод борьбы с этим, чтобы получить данные, а затем иметь JavaScript определить, что делать с данными (обновление DIV, и т.д.)

Однако, вместо того, чтобы отвечать на запросы с простыми данными, то сервер отвечает фактическим кодом jQuery, который должен быть выполнен. Как я могу заставить свой javascript принять этот ответ, а затем выполнить его? Я сделал это очень успешно с Mootools (используя evalScripts), но я не могу понять это в jQuery.

Преимущества этого в том, что клиентский код намного меньше, и в браузере требуется меньше работы.

Пример:

$.getJSON("http://appbeacon.com/index.php?model=blah_blah_blah", function(data){ 
    $.each(data, function(i,item){ 
     console.log(item); 
     // Need to execute "item" ?????? 
    }); 
});   

Пример ответа (No Longer JSON закодированные):

$("#1_cmd_group").remove(); 
$("#2_cmd_group").remove(); 
$("#3_contents").html("<li>blah blah blah"); 

ответ

2
eval(item); 

дать, что идти

+0

JSON не претендует на код. Вы должны рассматривать его взаимозаменяемо с XML. –

+0

Спасибо. Это было намного легче, чем я ожидал. Я отредактировал свое оригинальное сообщение с помощью метода Mootools для этого, затем мне стало интересно искать google для «jquery evalScripts». Я придумал несколько запутанных решений. Ваш ответ был прав. Thanks, Justin – Justin

+0

Рад, что я мог помочь. Только одно примечание. eval() относительно медленный по сравнению с выполнением нормального кода, поэтому просто будьте осторожны при его использовании. –