【发布时间】:2012-10-07 00:53:43
【问题描述】:
我正在使用 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.
但是,此功能确实存在,当我将链接粘贴到 URL 行时很明显。
我很困惑……
编辑:根据@paul 的建设性评论,我已将请求更改为 GET,并且确实找到了该页面。什么会导致这种晦涩的行为?
再一步:当我清空数据对象时(像这样:data: {}),即使使用 POST 请求也可以找到函数
【问题讨论】:
-
您是否在跨域进行此调用?
-
不,它是从内部调用的:mattat.org.il/ci/index.php/search/search_ns
-
该页面为我返回 500 数据库错误...
-
我知道,但这与我无关,因为函数应该传递参数。让我困惑的是,直接引用它可以找到它,而我通过AJAX调用它时却找不到
-
可能是post vs get的问题。当您在浏览器中键入 URL 时,您正在发出获取请求。你的 Ajax 正在发出一个 post 请求。
标签: jquery ajax codeigniter http-status-code-404