当 $.post 被写入 php 页面或任何其他类型的脚本时,php 文件是如何在服务器端执行的?
例如,如果我有一个 php 页面,它查找要传入的某个参数,并且如果满足该要求,它会调用 echo 向页面写入内容。但是,当我发布该帖子时,实际的 php 页面从未加载到我的浏览器中,那么究竟执行了什么?
我觉得我在问一些类似于......“如果一棵树倒下而周围没有人,它还会发出声音吗?” :)
当 $.post 被写入 php 页面或任何其他类型的脚本时,php 文件是如何在服务器端执行的?
例如,如果我有一个 php 页面,它查找要传入的某个参数,并且如果满足该要求,它会调用 echo 向页面写入内容。但是,当我发布该帖子时,实际的 php 页面从未加载到我的浏览器中,那么究竟执行了什么?
我觉得我在问一些类似于......“如果一棵树倒下而周围没有人,它还会发出声音吗?” :)
AJAX 调用与任何其他调用的服务器端执行没有什么不同。如需澄清,请查看浏览器调试工具(例如 FireBug 或 Chrome 工具)中的网络选项卡。观察页面加载时向服务器发出的请求,以及发出 AJAX 请求的时间。它们都具有相同的结构。
向服务器发送一个 HTTP 请求,该请求主要由标头和可能的内容组成,服务器以 HTTP 响应进行响应,该响应主要由标头和内容组成。请求也有动词(GET、POST 等),响应也有代码(200、404、500 等)。无论是不是 AJAX 请求,这些细节都是一样的。
例如,如果您要向“普通”PHP 页面发出 AJAX 请求,您会在浏览器调试工具中看到响应包含该页面的所有 HTML。服务器没有看到任何区别,它只是响应了请求。
由客户端(Web 浏览器)知道如何处理响应。对于“正常”页面加载,浏览器会呈现 HTML 页面。对于 AJAX 请求,JavaScript 需要处理响应。
就服务器(和 PHP)而言,浏览器确实加载了页面。只有在客户端您什么都看不到,但“页面”仍作为 AJAX 结果返回。
展示:
如果您的$.post
电话如下所示:
$.post('test.php',
{ param1 : "value1" },
function(data) {
console.log(data)
}
);
你的test.php
脚本看起来像这样
<?php
echo $_POST["param1"]
?>
然后console.log(data)
将输出"value1"
.
您的 php 脚本在调用处理程序的echo
第一个参数中可用。它不会直接写入您的页面。success
$.post
html