簡體   English   中英

收到ajax帖子的頁面會怎樣?

[英]What happens to a page that receives an ajax post?

將$ .post制作到php頁面或任何其他類型的腳本時,如何在服務器端執行php文件?

例如,如果我有一個php頁面,該頁面查找要傳遞的特定參數,並且滿足要求,則它將調用echo向該頁面寫入內容。 但是,當我發表該文章時,實際的php頁面從未加載到我的瀏覽器中,那么究竟執行什么呢?

我感覺好像是在問……“如果一棵樹倒下而周圍沒有人,它還會發出聲音嗎?” :)

在AJAX調用中,服務器端執行與其他任何調用都沒有不同。 為了澄清起見,請查看瀏覽器調試工具(例如FireBug或Chrome工具)中的“網絡”標簽。 在頁面加載以及發出AJAX請求時,觀察對服務器的請求。 它們都具有相同的結構。

HTTP請求發送到服務器,該請求主要由標頭和內容組成,服務器以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"

$.post調用的success處理程序的第一個參數中可以使用您的php腳本echo s。 它不會直接寫入您的html頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM