jQuery .load() 停止使用 POST 参数

jQuery .load() stopped working with POST parameter

本文关键字:POST 参数 load jQuery      更新时间:2023-09-26

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

经过一些调查,我想我已经将问题归结为 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 参数以某种方式破坏了函数。即使我删除了正在加载的 php 文件中的行$x= $_POST["varx"];并且只有一个简单的回声,当 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 实时完成的。

无论如何,我将不胜感激人们可能提出的任何想法。请告诉我我这边是否有更多信息可能有用。谢谢!

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

$("#testd").load("../scripts/debug_script.php", {'varx': 10}, function() {
    $("#mess").html("inside testd reached")
});