参考我的另一个问题: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