創建一個文件讓我們假設'site_constants.php'包含app/Config文件夾中的一些常量變量。定義以下常量進去:
<?php
define('HTTP_HOST', "http://" . $_SERVER['HTTP_HOST'].'/');
if(HTTP_HOST == 'localhost' || HTTP_HOST == '127.0.0.1')
{
define('SITE_URL', HTTP_HOST.'app_folder_name/');
}
else
{
define('SITE_URL', HTTP_HOST);
}
包括在app/Config/bootstrap.php
require_once('site_constants.php');
定義JS變量不變到您的主要佈局文件:
<script type="text/javascript">
var SITE_URL = '<?php echo SITE_URL?>';
</script>
現在你可以在任何地方使用它到您的網站。這也是一個動態的,你不需要改變每個Ajax方法的網址。
$.ajax({
url: SITE_URL+'controller/action',
type: 'post',
data: $('#form_data').serialize(),
dataType: 'json',
success: function(json) {
console.log(json);
}
});
這可能看起來漫長的過程來處理這個任務,但一旦完成,它會幫助你在很多意義。
這裏的優勢是:
- 您可以輕鬆地定義一些常量(像任何文件路徑等)。
- 你可以把你所有的ajax代碼放到外部的JS文件中。
- 您可以直接將其部署到任何服務器上,而無需更改常量,也可以在本地主機上完美工作。
- 遵循標準慣例等
你在尋找$ .post或$ .ajax嗎?在你的問題中,你編寫$ .post,但你的示例代碼使用$ .ajax – kannix
你不能在外部變量中定義url並調用它; 'var url ='http:// foo/bar''然後'$ .post(url,data,callback)'? – Vishal
讓我試試這個快速,是的我的壞@kannix,感謝您的糾正。 – mauzilla