參考我的另一個問題:Context-aware AJAX call in a modular site,是否有可能以便捷的方式設置AJAX代理?使用PHP的AJAX代理,可以嗎?
我希望使用動態url進行AJAX請求,而不用服務器端PHP指令篡改JavaScript代碼,在模塊化Apache/PHP/MySQL網站中計算ajax php文件的正確路徑,編寫一個粗略CMS由我。 換句話說,該網站的插件和組件具有包含其CSS,JS和PHP的自己的文件夾結構,並且我具有動態檢索其文件夾的功能。我希望:
$("#mydiv").load(siteRoot + "/ajax.php?plugin=datagrid&
action=myaction&... other params...");
將改爲調用(與PHP的URL計算服務器端):
{siteRoot}/components/datagrid/ajax/myaction.php?... other params ...
(很明顯,對所有注射,CSRF及其他黑客可能的檢查) 。
因此,頭部重定向對AJAX調用也起作用*這似乎很有趣,適應包括POST標題不應該*那*難... – Cranio 2012-08-03 10:11:46
恐怕很難。 AJAX請求本質上是標準的HTTP請求,所以在這裏沒有什麼魔力。我們在這個PHP代碼中做的是我們發送重定向頭,這個頭可以返回到瀏覽器,然後依次詢問給定URL的內容。但它不會第二次發送POST數據(這是正常的POST-REDIRECT-GET模式)。爲了能夠發送POST數據,您必須發送POST數據並在PHP腳本中讀取響應(可能使用cURL)並輸出響應。代碼示例中的Google'php curl post'。 – jderda 2012-08-03 14:08:42
是的,根據你的回答,我已經做了一些研究和cURL似乎要走的路。或者,也許,做一個GET請求,其中POST變量被特別標記並轉換爲GET變量(但如果我沒有錯,GET有長度限制,所以不會有完整的兼容性)。感謝您的解釋:) – Cranio 2012-08-03 14:56:58