我正在使用jquery向不同服务器发出异步请求以获取某些数据。它在IE中工作正常,但在FireFox和Chrome中不起作用,当它到达对其他服务器发出请求的代码时,它会冻结并显示空白页面。如果我删除那段代码,ajax工作正常。
另外,当我在document.ready上放置一个断点时,在使用IE调试时会遇到断点,但在使用FireFox进行调试时它没有被击中。
以下是我正在使用的JQuery
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;
});
});
任何帮助都将受到高度赞赏。
答案 0 :(得分:2)
根据jQuery.Get的文档:
由于浏览器安全限制,大多数“Ajax”请求都受same origin policy的约束;请求无法成功从其他域,子域或协议中检索数据。
如果你正在使用JSON响应,那么你应该考虑使用已经归入GetJSON method的JSONP选项。
但是有几个人为Get限制提供了一些解决方法: