2014-09-18 62 views
2

我的网站突然停止工作。我注意到,我发送给我的服务器的ajax呼叫在从手机呼叫时在数据末尾返回一个额外的'0'字符。 ie. {1:1, 2:2}0PHP在手机浏览器中末尾添加0

这不会发生在桌面浏览器中。当我尝试直接从浏览器访问.php文件时,我可以看到最后加上了'0'。再次,在桌面浏览器中,不存在“0”。在不同的手机浏览器中,总是有一个'0'。这使我的ajax调用,因为我期待一个json返回值,但'0'字符是意外的。

我尝试在我的php处理程序的末尾添加die();exit;但没有什么区别。有谁知道还有什么可能是可能的问题?

更新: 我没有使用任何PHP框架。

我简化了代码,基本上只是这一点,仍然在最后得到0。

get_data.php

<?php 
echo "ASD"; 
die(); 
?> 

我的话,访问它通过网络服务器http://domain.com/get_data.php,我看到ASD0在页面中。我直接访问它,以消除它是ajax调用/ jquery问题的可能性。我还没有尝试在我的本地机器上托管一个基本的xampp服务器,并查看是否发生同样的问题。现在,它在我们的register.com网站服务器上托管。

+3

我们要需要看到一些代码... – JAAulde 2014-09-18 20:59:50

+1

PHP本身无法检测到使用的浏览器,并做一些事情其他基于此。除非你告诉它这样做。 – 2014-09-18 21:00:21

+0

您是否使用了一些库或引导程序?前段时间我有一个类似的问题,它基于bootstraps自己js – 2014-09-18 21:03:15

回答

1

发现的罪魁祸首,但不知道为什么。它只在使用ATT数据连接时发生。使用WiFi和其他网络服务提供商时,它工作正常。

同样的问题作为PHP script has extra 0 at the end of the output on a cellular connection

添加以下行的固定问题

header('Content-Type: text/plain; charset=utf-8'); 
+0

我与AT&T mobile使用最新的PHP和Apache有同样的问题,并且可以证实这解决了这个问题。 – zpr 2014-09-21 13:49:07