【发布时间】:2014-09-18 20:58:27
【问题描述】:
我的网站本周突然停止工作。我注意到,当从手机调用时,我发送到服务器的 ajax 调用会在数据末尾返回一个额外的“0”字符。 ie. {1:1, 2:2}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 的网络服务器中。
【问题讨论】:
-
我们需要查看一些代码...
-
PHP 本身无法检测到使用过的浏览器并基于此执行其他操作。除非你告诉它这样做。
-
您是否使用一些库或引导程序?前段时间我也遇到过类似的问题,是基于bootstraps自己的js
-
正如其他人所说,它必须是您的代码中与此相呼应的东西。你有检测手机的东西吗?通过 echo 或 var_dump 做一个 grep,也许你留下了一些调试代码。
-
@MarcusRommel OP 说附加到 ajax 调用,我不认为引导程序可以在 js 本身处理后更改服务器响应