我正在使用Jquery ajax来调用CodeIgniter函数:
$.ajax({
type: "POST",
dataType:'json',
beforeSend: function() {
$("#opc").addClass("opacity");
$("#searching").show();
},
url: "<?php echo base_url(); ?>search/get_results",
data: {
'ns_pos':ns_pos,
'NSPlaceDomainID':activity,
'DistrictID':area,
'NSAssociationID':referer,
'Title':text,
'SettlementID':settlement,
'NoOpinion':$("input[name=NoOpinion]").is(":checked"),
'SpecialCharacteristics':ns_attr
}
等...
在Chrome控制台中,我收到消息:
POST http://mattat.org.il/ci/index.php/search/get_results 404 (Not Found)
回复预览是:
Not Found
The requested URL /ci/index.php/search/get_results was not found on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
但是,此功能确实存在,因为我只是将链接粘贴到网址行中就很明显了。
我很困惑......
编辑:按照@ paul的建设性意见,我已将请求更改为GET,实际上,找到了该页面。什么可能导致这种模糊的行为?
还有一步:当我清空数据对象时(如:data:{}),即使使用POST请求也找不到 函数
答案 0 :(得分:2)
正如Paul已经指出的那样,由于GET / POST限制,这可能是一个错误。如果您在此端点上支持POST请求,请检查您的服务器代码。
答案 1 :(得分:0)
请使用base_url()
,而不是site_url()
。我遇到过同样的问题。
可以给出一个简单的例子,其中查看ajax jQuery发布。
$.post("<?php echo site_url('message/add') ?>", {message: msg}, function() {
$('#content').load("<?php echo site_url('message/view/ajax') ?>");
$('#message').val('');
});
消息/添加在这里,因为您可以猜测该功能是在控制器中定义的。当我第一次处理php时,我搜索了一个很好的例子。我不仅是php的新闻,也是codeigniter的新闻。在许多示例中,实现的表单类似于“base_url + message / add”。 codeigniter版本可能会导致此错误,因为所有这些都是由2.X之前的版本编写的。无论如何,如果你想要一个现成的代码,请检查以下链接,它对我有用!
答案 2 :(得分:0)
同样的问题让我感到困惑。原来这是一个Apache权限问题。我检查了我的托管服务提供商,他们确认并修复了它并向我展示了如何设置一个每小时运行一次的Cron作业以重新获得适当的权限。他们还建议我使用FileZila而不是WinSCP,并为我提供了自动重置重新上载文件权限的设置。