ajax()POST在Nginx/PHP-FPM上使用IE10接收空响应,但在Apache上工作

ajax()POST在Nginx/PHP-FPM上使用IE10接收空响应,但在Apache上工作,apache,jquery,character-encoding,nginx,internet-explorer-10,Apache,Jquery,Character Encoding,Nginx,Internet Explorer 10,我使用一个非常简单的jquery.ajax()调用从服务器获取一些HTML片段: // Init add lines button $('body').on('click', '.add-lines', function(e) { $.ajax({ type : 'POST', url : $(this).attr('href')+'?ajax=1&addlines=1', data :

我使用一个非常简单的
jquery.ajax()
调用从服务器获取一些HTML片段:

// Init add lines button
$('body').on('click', '.add-lines', function(e) {
    $.ajax({
        type        : 'POST',
        url         : $(this).attr('href')+'?ajax=1&addlines=1',
        data        : $('#quickorder').serialize(),
        success     : function(data,x,y) {
            $('#directorderform').replaceWith(data);
        },
        dataType    : 'html'
    });
    e.preventDefault();
});
在PHP方面,我基本上是回显一个HTML字符串。jQuery版本是1.8.3

问题出在IE10:虽然它在运行于Apache的服务器A上运行良好,但在运行于Nginx+PHP-FPM的服务器B上运行失败:如果我在服务器B上调试
成功
处理程序,我会为
数据
获得一个
未定义的
。在IE开发者工具的网络选项卡中,我可以看到完整的响应和所有标题。它可能会影响其他IE版本,但到目前为止我只能测试IE10

以下是两个响应头:

服务器A,Apache(工作):

服务器B,Nginx+PHP-FPM(失败):

在这两种情况下,身体部位看起来都一样


知道是什么导致了这个问题吗?

请同时检查内容类型标题,因为Apache和Nginx正在发送不同的值:

Content-Type: text/html; charset=UTF-8
vs

更新Nginx配置,添加以下行:

charset UTF-8;

我记得不久前在nginx和“分块”传输编码方面遇到了一些问题,可能值得研究一下。谢谢Marian。我以前也试过用
chunked\u transfer\u编码。没有区别。仍然让我困惑的是缺少的
内容长度
标题。如果chunked关闭,它也会丢失。难以置信!这真的解决了它。谢谢!
Content-Type: text/html; charset=UTF-8
Content-Type: text/html; charset=utf8
charset UTF-8;