2010-11-16 60 views
0

我正在向不同的服务器使用jQuery进行一些数据的异步请求。它在IE中可以正常工作,但在FireFox和Chrome中无法使用,当它到达向其他服务器发出请求的代码时,它将冻结,并显示一个空白页面。如果我删除了那段代码,那么Ajax工作正常。另外,当我在document.ready处放置一个断点时,使用IE进行调试时会触发断点,但在使用FireFox进行调试时不会触及断点。跨域调用在FireFox和Chrome中不起作用

以下是我使用

jQuery(document).ready(function ($) { 

    $('.tabs a, .tabs span').livequery('click', function() { 

     var currentTab = $(this).parents('li:first'); 

     if (!currentTab.is('.active')) { 
      var currentContent = $('.tab_container .' + currentTab.attr('class')); 

      $('.tabs li').removeClass("active"); 
      currentTab.addClass("active"); 
      var url = $(this).attr("href"); 

      var newContent = ""; 
      if (currentContent.length == 0) { 
       $.get(url, {}, function (result) { 
        $('#tabs.tab_container div:visible').fadeOut(100, function() { 
         $('#tabs.tab_container') 
         .html(result) 
         .fadeIn(100); 
        }); 

       }, 'html'); 
      } 
      else { 
       $('#tabs.tab_container div:visible').fadeOut(100, function() { 
        currentContent.fadeIn(100); 
       }); 
      } 
     } 
     return false; 
    }); 
}); 

任何帮助将高度赞赏JQuery的。

回答

2

根据该文档为jQuery.Get

由于浏览器的安全限制,大多数“Ajax”的请求都受到了same origin policy;该请求无法成功从不同的域,子域或协议中检索数据。

如果您是在JSON响应之后,那么您应该考虑使用已经卷入GetJSON method的JSONP选项。

有几个人在那里谁却提供了一些变通办法获取限制:

+0

与YQL这招是很酷。 – 2010-11-16 11:41:28

相关问题