我一直认为jquery的load函数是以GET方式请求另一个文件并加载到当前DOM里的。当我带参数加载一个ASP脚本时是这样做:
$(”#showData”).load(”test.asp”,{id:12});
test.asp内容:
<%
response.write “ID:” & request(”id”)
%>
执行后,DOM里的showData元素就会加载test.asp脚本输出的结果ID:12。这本身并没有错。但我换成PHP脚本就不行了:
$(”#showData”).load(”test.php”,{id:12});
test.php内容:
<?php
echo “ID:”.$_GET[”id”];
?>
执行后显示的结果永远是ID:。12怎么也不显。我很是郁闷。只好认认真真看jquery文档。于是我发现关于load()函数有这样一句:
A GET request will be performed by default – but if you pass in any extra parameters then a POST will occur.
问题就在这里,load()在没有参数的默认情况下是以GET方式请求,但如果带有参数,将以POST方式请求。我在用ASP脚本时,request(”id”)是可以读取GET和POST参数的,但在PHP脚本下这两种方式要分别用$_GET和$_POST读取。很显然我的test.php脚本里用$_GET[”id”],是读不出来的。换成$_POST[”id”]后问题解决。