2013-09-26 69 views
0

在webroot中存在的javascript文件中進行的ajax調用中處理url的更好方法是什麼?因此,PHP不會解釋它嗎?CakePHP - 在Ajax調用中處理網址

我使用CakePHP和require.js,因此不會將JavaScript代碼直接放在視圖中。我發現的唯一辦法是在接收Webroot公司的這樣的值的佈局來聲明一個變量:我硬編碼的網址,以Ajax調用這樣

<script>var webroot = "<?php echo this->Html->url('/') ?>" </script>

然後在我的js文件:

$.getJSON(webroot + 'users/list', function(){ ... });

但是,如果路徑文件中有變化,它不能解決問題。在完成項目後,我通常會將路線更改爲更友好,如果我在js文件中引用了許多ajax調用或urls,就會導致嚴重問題。

回答

2

我平時的工作是這樣的:

在我的佈局,標題我添加以下包含任何其他JavaScript之前:

<script type="text/javascript">var baseUrl = '<?php echo $this->base; ?>';</script> 

然後在我的JavaScript文件,我這樣做:

$.post("http://"+ document.domain + baseUrl +"/controller/action.json"); 
0

使用

echo Router::url(array('controller' => 'Users', 'action' => 'list')); 

將輸出;

/Users/list 

在JS

$.post({url : "<?php echo Router::url(array('controller' => 'Users', 'action' => 'list')); ?>"})