收到ajax帖子的页面会发生什么?

时间:2013-07-21 21:26:18

标签: php jquery ajax parameters server-side-scripting

当一个$ .post用于php页面或任何其他类型的脚本时,如何在服务器端执行php文件?

例如,如果我有一个查找要传入的特定参数的php页面,并且如果满足该要求,则会调用echo来向页面写入内容。但是,当我发布该帖子时,实际的php页面从未在我的浏览器中加载,那么究竟执行了什么?

我觉得我在问什么......“如果一棵树掉下来,周围没有人,它还会发出声响吗?” :)

3 个答案:

答案 0 :(得分:2)

在AJAX调用与任何其他调用之间,服务器端执行没有区别。有关说明,请查看浏览器调试工具(例如FireBug或Chrome工具)中的“网络”选项卡。观察页面加载时向服务器发出的请求,以及发出AJAX请求的时间。它们都具有相同的结构。

HTTP请求被发送到服务器,主要由头部和内容组成,服务器响应HTTP响应,主要包括头部和内容。请求还有动词(GET,POST等),响应也有代码(200,404,500等)。无论是否是AJAX请求,这些细节都是相同的。

例如,如果您要向“普通”PHP页面发出AJAX请求,您会在浏览器调试工具中看到响应包含该页面的所有HTML。服务器没有看到任何区别,只是响应了请求。

由客户端(Web浏览器)决定如何处理响应。对于“正常”页面加载,浏览器呈现HTML页面。对于AJAX请求,JavaScript需要处理响应。

答案 1 :(得分:0)

就服务器(和PHP)而言,浏览器 加载页面。只有在客户端才能看到任何东西,但“页面”仍然作为AJAX结果返回。

答案 2 :(得分:0)

演示:

如果您的$.post电话看起来像这样:

$.post('test.php',
       { param1 : "value1" },
       function(data) {
         console.log(data)
       }
);

并且您的test.php脚本看起来像这样

<?php

echo $_POST["param1"]

?>

然后console.log(data)将输出"value1"

您的php脚本echosuccess调用的$.post处理程序的第一个参数中可用。它不会直接写入您的html页面。