1

当 $.post 被写入 php 页面或任何其他类型的脚本时,php 文件是如何在服务器端执行的?

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

我觉得我在问一些类似于......“如果一棵树倒下而周围没有人,它还会发出声音吗?” :)

4

3 回答 3

2

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

向服务器发送一个 HTTP 请求,该请求主要由标头和可能的内容组成,服务器以 HTTP 响应进行响应,该响应主要由标头和内容组成。请求也有动词(GET、POST 等),响应也有代码(200、404、500 等)。无论是不是 AJAX 请求,这些细节都是一样的。

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

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

于 2013-07-21T21:31:33.767 回答
0

就服务器(和 PHP)而言,浏览器确实加载了页面。只有在客户端您什么都看不到,但“页面”仍作为 AJAX 结果返回。

于 2013-07-21T21:30:48.513 回答
0

展示:

如果您的$.post电话如下所示:

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

你的test.php脚本看起来像这样

<?php

echo $_POST["param1"]

?>

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

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

于 2013-07-21T21:34:58.670 回答