这是我的第一个CI项目,请原谅我。
我根本无法使用AJAX调用方法。它一直在Web Inspector中成为404。
我有一个名为“home.php”的控制器。它正在发挥作用。我可以登陆我的主页。
然后我在悬停事件中触发了这个AJAX调用
function showDataWindow(){
// i might switch this to data attr, but for now item IDs are contained in class
var thisClass = $(this).attr('class');
var thisIDpos = thisClass.indexOf("id-")+3;
var thisID = thisClass.substr(thisIDpos, 3);
alert(thisID); // alerting correctly
$.post('getMoreInfo', { ID: thisID},
function(data) {
.. act on data
我根本找不到我打电话的方法 - 获取更多信息。总是404。
我的控制器中有一个home.php类,它的设置为默认值,因为我登陆主页并获取索引,所以它有效。但在那个家庭控制器也是我的getMoreInfo函数...
public function getMoreInfo()
{
$ID = $_POST['ID'];
$this->load->model('Artist_model');
$assocReturned = $this->Artist_model->get_more_info($ID);
echo json_encode($assocReturned);
}
而且我觉得有一个小小的MC Hammer守卫着这个功能。 “你不能碰这个”。他用他的小降落伞裤子和微小的褪色嘲笑我。
我认为一定是我在Jquery AJAX帖子中做我的URI的方式?我的htaccess中有索引重写(我确实有点模糊)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
但我在AJAX调用中尝试了几乎每个URI排列
www.mySite.com/index.php/home/getMoreInfo
index.php/home/getMoreInfo
index.php/getMoreInfo
/home/getMoreInfo
home/getMoreInfo
/getMoreInfo
getMoreInfo
!
没有人奏效。
您需要调用的内容取决于路由器的配置方式。
默认调用将是/home/getMoreInfo
,但如果您重新配置了路由器,则可以更改。参考:http://codeigniter.com/user_guide/general/routing.html