2011-06-20 58 views
0

我在codeigniter中實現jquery.ajax時遇到問題。我想將控件發送到控制器的特定功能。我設置的URL在我的javascript函數這樣codeigniter中的jquery.ajax

var url='<?php echo('First/index');?>'; 
var ajaxoptions={url:url,success:submit_ajax_response}; 

First是我的控制器和index是我的功能,我想發送的控制。當我點擊的事件上,它被稱爲以下網址形成

http://localhost/codeigniter/First/index 

的網址是好的,但它產生的404錯誤。我在zendframework中多次做過這樣的操作,但無法在codeigniter中完成這項工作。我注意到一件事,如果我在網址中添加index.php,它工作正常。通過添加index.php的url變得像

http://localhost/codeigniter/index.php/First/index 

我很驚訝如何從路由文件中刪除index.php。我只有兩行route.php文件

$route['default_controller'] = "First"; 
$route['404_override'] = ''; 

我已經使我的控制器作爲默認控制器。 我做得對嗎?什麼是問題和如何完成這項工作`

+0

URL不是很好,如果它產生404當你去到那個網址在瀏覽器中會發生什麼?如果問題是您的ajax請求,您還需要發佈該代碼。 –

+0

@Calving Froedge我注意到,如果我包含index.php /在我的網址它工作正常。如何從路由中刪除index.php? –

+0

@Calving Froedge。 Dude請參閱我編輯的問題 –

回答

3

你需要檢查幾件事情。首先,在/application/config/config.php確保索引文件是這樣的:

$config['index_page'] = ''; 

第二,確保你有正確的.htaccess。這應該是你的公共目錄(同一個地方作爲你的index.php)的根:

<ifModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    Options FollowSymLinks 

    #Checks to see if the user is attempting to access a valid file, 
    #such as an image or css document, if this isn't true it sends the 
    #request to index.php 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 
+0

@Calving Froedge。謝謝兄弟,這是我想要完成的.... +1爲你解釋得很好解答 –

+0

謝謝你的作品像一個魅力 –

3

我注意到你的URL缺少的部分是CodeIgniter所具有的「index.php」。 你的代碼改成這樣:(你需要URL幫手,所以在此之前加載):

var url="<?php echo (index_page() . 'First/index');?>"; 
var ajaxoptions={url:url,success:submit_ajax_response}; 

index_page返回你的網站「指數」頁面,在你的配置文件中指定。

爲了從CodeIgniter鏈接中刪除index.php,請參閱here

+0

他不應該添加index.php到路徑才能使其工作,除非他沒有從路由中刪除index.php。 –

+0

@Calvin Froedge:這就是爲什麼我回顯index_page()。如果他已經使用mod_rewrite刪除了index.php,他必須更改'$ config ['index_page']'所以一切都應該在這種情況下工作。 –

+0

@Calving Froedge如何從路由文件中刪除index.php? –