Прокси AJAX с PHP, возможно ли это?

В связи с моим другим вопросом: Context-aware AJAX-вызов на модульном сайте , можно ли настроить прокси AJAX удобным способом?

Я хотел бы сделать запросы AJAX с динамическим url, не испортив код JavaScript с помощью инструкций PHP на стороне сервера, вычисляя правильный путь для файла php ajax на модульном сайте Apache / PHP / MySQL, грубой CMS, написанной мной. Другими словами, на сайте есть плагины и компоненты со своими собственными структурами папок, содержащими их CSS, JS и PHP, и у меня есть функции для динамического восстановления их папки. Я бы хотел:

$("#mydiv").load(siteRoot + "/ajax.php?plugin=datagrid& action=myaction&... other params..."); 

вместо этого вызывается (с URL-адресом, вычисленным на стороне сервера PHP):

 {siteRoot}/components/datagrid/ajax/myaction.php?... other params ... 

(очевидно, со всеми возможными проверками против инъекций, CSRF и других хаков).

Файл /ajax/get.php должен выглядеть примерно так:

 $plugin = $_GET['plugin']; $action = $_GET['action']; $get = array(); foreach ($_GET as $k=>$v) { if($k!='plugin' && $k!='action') { $get[] = "{$k}={$v}"; } } $url = 'siteRoot/components/'.$plugin.'/ajax/'.$action.'.php?'.implode('&', $get); header("Location: {$url}"); 

Конечно, вам нужно добавить некоторые проверки безопасности на код выше

EDIT: Недостатком является то, что он не будет работать для отправки запросов POST

Вместо этого вы также можете объявить свою javascript-переменную в своем первом запросе на страницу, а затем использовать ее, чтобы сказать, что SITE_URL содержит ваш php-вычисленный URL-адрес

  var siteRoot = '<?php echo SITE_ROOT?>' // or some thing else 

поэтому для любого сценария .js, включенного после этой строки, будет определена siteRoot var.