我正在尝试创建一种在我的网页中调用 ajax 请求的通用方法。我创建了一个不错的小扩展方法来异步调用发布请求。
$.tiqPost = function(action,data,callback)
{
alert('Posting...');
$.fancybox.showActivity();
$.ajaxSetup({async:true});
$.post('/portfolios/mod/t:'+action+'/',data,function(response)
{
callback(response);
$.fancybox.hideActivity();
alert('Finished Post.');
});
alert('Posting Set.');
}
但是,每当此请求触发时,我的页面就会无限期地卡住。在某些版本的 Chrome 中,它会死机而没有任何反馈(点击停止工作,我无法关闭选项卡)。但在大多数其他浏览器中,它显示“正在发布”,然后在没有到达“发布设置”或“已完成发布”的情况下停止。
因此 Chrome 没有发现任何错误,只是卡住了。这让我很费解。任何人有任何提示(或者甚至只是不同的实现)?
编辑:
并非每个请求都会发生这种情况。事实上,让我发布一些有效的案例和一些无效的案例。等等……
编辑编辑:
所以在这个例子中
$.tiqPost('newcat',{t:"n"},function(response)
{
if(response)
{
$tabs.tabs('add','#tiq-tab-'+response,"New Category",0);
}
});
我没有任何问题。然而:
$(this).bind('blur',function(postdata)
{
//blur
if(postdata==null)
postdata = {value:$(this).text()};
$.tiqPost($(this).attr('id').replace('tiq-submit-',''),
postdata,
function (response) {
$(this).text(response);
});
$(this).removeClass('tiq-editable-editstate');
$(this).attr('contentEditable','false');
});
导致卡住。
最佳答案
做做
$.post('/portfolios/mod/t:'+action+'/',data,function(response)
{
callback(response);
alert('Finished Post.');
});
一个人,行吗? 如果是这样,那么您可能在配置函数本身时遇到问题
关于php - Ajax 请求卡住网页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10696825/