当一个$ .post用于php页面或任何其他类型的脚本时,如何在服务器端执行php文件?
例如,如果我有一个查找要传入的特定参数的php页面,并且如果满足该要求,则会调用echo来向页面写入内容。但是,当我发布该帖子时,实际的php页面从未在我的浏览器中加载,那么究竟执行了什么?
我觉得我在问什么......“如果一棵树掉下来,周围没有人,它还会发出声响吗?” :)
答案 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脚本echo
在success
调用的$.post
处理程序的第一个参数中可用。它不会直接写入您的html
页面。