因此,我的网站在过去一年左右的时间里一直运作良好,当我今天查看时,部分网站停止工作。这对我来说很奇怪,因为我没有改变任何代码。
经过一番调查后,我认为我已将问题归结为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"];
并且只有一个简单的echo,当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实时完成的。
无论如何,我会很感激人们的想法。如果我的最终信息可能有用,请告诉我。谢谢!
答案 0 :(得分:0)
尝试将varx
变量名称作为字符串发送,如下所示:
$("#testd").load("../scripts/debug_script.php", {'varx': 10}, function() {
$("#mess").html("inside testd reached")
});