2011-04-21 52 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