我在codeigniter中使用.ajax函数进行ajax调用,我的控制器被称为控件,我在其中有一个名为Login的函数
但是当我运行此代码时:
$.ajax({
url: "Connection/Login",
type: "POST",
data: Login_data,
success: function () {
alert('ajax worked');
}
});
控制台告诉我404找不到错误。 并且添加index.php不起作用。
编辑:我能够在我的控制器中访问我的功能而根本没有提到控制器,所以我可以调用url:“login”,我不需要添加名为connection的控制器吗?这是因为我的路线档案?因为我需要有组织网址的路由文件,我无法访问另一个控制器功能,但控制器设置为默认控制器
路线档案:
$ default_controller =“网页”; $ controller_exceptions = 阵列( '管理员', '论坛');
$ route ['default_controller'] = $ default_controller; $ route [“^((?!\ b”.implode('\ b | \ b',$ controller_exceptions)。“\ b)。*)$”] = $ default_controller '/ $ 1'。 $ route ['404_override'] =''; $ route ['translate_uri_dashes'] = FALSE;
答案 0 :(得分:1)
将base_url()添加到ajax url
var base_url = <?php echo base_url()?>;
$.ajax({
url: base_url+"Connection/Login",
type: "POST",
data: Login_data,
success: function () {
alert('ajax worked');
}
});
更好地从视图中隐藏的输入传递base_url
并在codeigniter中设置base_url配置
答案 1 :(得分:0)
首先,您需要先调用控制器,然后再调用方法。
实施例:
url: '/control/login'
其中control
是controller
的名称,login
是method
的名称。
答案 2 :(得分:0)
animateFlag = true;
$(window).scroll(function() {
if($(this).scrollTop() > 500) {
if(animateFlag) {
$(".element").addClass("animateElement");
animateFlag = false;
}
}
}
对路线使用site_url(),对资产使用base_url()
答案 3 :(得分:0)
第一种方法
如果baseurl+index.php/controllername/functionname
隐藏,则添加index.php
,然后ajax网址必须为baseurl+/controllername/functionname
第二种方法
也只是使用functionname
下面是示例:
$.ajax({
type : 'POST',
url : 'sendrequest',
data : { allVals : allVals },
async : false,
success : function(html)
{
$(".close").click();
}
});
在这种情况下,我的控制器功能是sendrequest
$.ajax({
type : 'POST',
url : $("#app_base_url").val() + 'index.php/user/activities/activity_calendar_add',
data : { id : id},
async : false,
success : function(data)
{
$(".add_act").html(data);
}
});
此$("#app_base_url").val()
可能包含baseurl
答案 4 :(得分:0)
我希望这可以帮助你
$。AJAX({ url:&#34;登录&#34;, 键入:&#34; POST&#34;, 数据:Login_data, 成功:function(){ 警报(&#39; ajax工作&#39;); } });