在最新的JQuery(1.5)发布之前,这个功能在一个月前运行良好。我也升级到了PHP 5.3 ---这是自那时以来唯一发生变化的事情,现在代码已经破了。
我怀疑新PHP会对javascript POST产生影响,而且我使用的是1.4.2的JQuery的本地副本,所以我不知道1.5的出现对我有什么影响。
该页面位于此处:[已删除链接]
我使用的自定义表单函数是form_post ...,它位于:
$.extend({
form_post : function(url, form, callback) {
var serialized_form_data = $(form).serialize();
$('#sub-navigation-content > *').slideUp('fast');
$('#content-container').hide('fast');
$.ajax({
async: true,
type: 'POST',
url: url,
data:serialized_form_data,
success: function(response) {
var contents = $(response).find('#content-container > *');
$("#content-container").html(contents);
$("#content-container").show('normal');
var sub_nav = $(response).find('#sub-navigation-content > *');
$(response).filter('script[src=""]').each(function(){
sub_nav.push(this);
});
$("#sub-navigation-content").html(sub_nav)
$('#sub-navigation-content > *').hide();
$("#sub-navigation-content > *").css("visibility", "hidden").delay(500).slideDown("slow").delay(0).css("visibility", "visible");
if(typeof callback == 'function'){
callback.call(this, response);
}
}
});
}
});
使用chrome的内置网络/调试器我看到服务器在资源加载失败时返回,请求通过正确的标头和URL发送,但什么都没有回来。更奇怪的是我使用了HTTP分析器并且我可以捕获HTTP POST,并且我看到没有响应,但是如果我模仿请求并通过程序发送它,一切都完全没问题,完全相同的标题,POST数据,URL等
为什么会这样?
编辑:
看看我的PHP错误,我发现它可能与PHP 5.3有关:
PHP警告:第25行的/var/www/xxxx/shared/catalog_process.php中为foreach()提供的参数无效
...哈哈。我开始后悔切换到PHP 5.3。它甚至没有在浏览器中给我错误,只是说:
网页 [已删除链接] 可能暂时失败或可能 已永久移动到新网站 地址。错误330 (网:: ERR_CONTENT_DECODING_FAILED): 未知错误。
然而,在修好错误后 - 仍然没有去
答案 0 :(得分:3)
我收到以下错误:
我会检查zlib.output_compression是否打开(http://www.php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression),并且根据您使用的是哪个Web服务器,我会在那里关闭gzip压缩,看看是否有帮助。