我使用一个非常简单的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上失败:如果我success
在服务器 BI 上调试处理程序,则得到一个undefined
for data
. 在 IE 开发人员工具的网络选项卡中,我可以看到完整的响应和所有标题。它可能会影响其他 IE 版本,但我目前只能测试 IE10。
这是两个响应标头:
服务器 A,Apache(工作):
HTTP/1.1 200 OK
Date: Thu, 25 Apr 2013 13:28:08 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 1268
Keep-Alive: timeout=2, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
服务器 B,Nginx + PHP-FPM(失败):
HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Thu, 25 Apr 2013 13:41:43 GMT
Content-Type: text/html; charset=utf8
Transfer-Encoding: chunked
Connection: keep-alive
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Encoding: gzip
在这两种情况下,身体部位看起来都一样。
知道什么可能导致这个问题吗?