2011-04-21 31 views
0

我有一個在iframe中調用的跨瀏覽器窗體。該表格具有「動態」選擇菜單。我正在使用jQuery getJSON()函數來查詢數據。我一直無法使用以下代碼成功更新select菜單,似乎它應該可以用於wikiPresto。數據正在返回(我可以看到它在螢火蟲),但select不更新...jQuery:ajax()/ jsonp:跨瀏覽器

任何想法,我在做什麼錯?

注:#foo和#bar是選擇菜單...

var $f = $('#foo'); 
var $b = $('#bar'); 
$b.change(function() { 
    var foo = $f.val(); 
    var bar = $b.val(); 
    $.getJSON("http://example.com/form.php", {f: foo, b: bar}, 
     function(foo){ 
      varbar = $('#foo'); 
      varbar.html(foo.data); 
     } 
    ); 
}); 

回答

1

如果這個頁面是不是也對http://example.com,那麼你需要使用JSONP。

?callback=?添加到url,使jQuery使用JSONP。

$.getJSON("http://example.com/form.php?callback=?", {f: foo, b: bar}, 
    function(foo){ 
    } 
); 

form.php將不得不包裝JSON的值爲$_GET['callback']。從form.php的返回的數據應該是這樣的:

callback({data: 'test'}); 

Wikipedia article on JSONP

+0

+1,這個答案可能有一個鏈接到一個'JSONP'解釋雖然得到改善。 :) – Alex 2011-04-21 20:17:19

+0

@Alex:我添加了一個鏈接到維基百科文章:-) – 2011-04-21 20:18:58