1

所以我的网站在过去一年左右一直运行良好,当我今天检查它时,它的一部分停止了工作。这对我来说似乎很奇怪,因为我没有更改任何代码。

经过一番调查,我认为我已经将问题归结为 jQuery .load() 函数。我在一个名为“debug.php”的文件中有如下内容:

...
<div id="testd"></div>
<p id="mess"></p>
...
<script type="text/javascript">
    $(document).ready(function() {
        $("#testd").load("../scripts/debug_script.php", {varx: 10}, function() {
            $("#mess").html("inside testd reached")
        });
    });
</script>

文件 debug_script.php 很简单:

<?php
$x= $_POST["varx"];
echo "<p>x is $x</p>";
?>

使用上面的代码,在文件 debug.php 中,“testd” div 中没有加载任何内容,但“mess”中的消息显示。

如果我删除 的{varx: 10}参数.load(),“testd”中的消息会显示得很好(显然没有 x 的实际值)。

所以看起来 .load 中的 POST 参数以某种方式破坏了函数。即使我删除了$x= $_POST["varx"];正在加载的 php 文件中的行并且只有一个简单的回显,当 POST 参数包含在 .load() 中时也不会加载任何内容。

有没有人知道为什么会出现这个问题?就像我之前说的,这些 .load() 调用直到最近在我的网站上运行良好,而且在它工作和停止工作之间我根本没有改变任何东西。

我从 Google API ( http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js ) 链接到 jQuery 1.7.2,我的主机是 000webhost.com。问题可能与主机有关吗?我没有安装本地服务器,所以我的所有测试都是通过 000webhost 实时完成的。

无论如何,我会很感激人们可能有的任何想法。只要让我知道我的更多信息是否有用。谢谢!

4

1 回答 1

0

尝试将varx变量名称作为字符串发送,如下所示:

$("#testd").load("../scripts/debug_script.php", {'varx': 10}, function() {
    $("#mess").html("inside testd reached")
});
于 2013-09-05T21:15:46.053 回答