我在codeigniter中实现jquery.ajax
时遇到问题。我想将控件发送到控制器的特定功能。我正在设置我的javascript函数中的url
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 :(得分:3)
我注意到你网址中缺少的部分是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。
答案 1 :(得分: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>