如果没有阅读完整的问题,请不要将其标记为重复。
我知道这已经多次讨论了。
但这是不同的情况。
我正在对php方法进行简单的ajax调用,如下所示:
public function updateAbout()
{
log_message('debug', "updateAbout is called", false);
log_message('debug',$this->input->post('fname'), false);
log_message('debug', "updateAbout success", false);
}
在这种方法中,我只是试图获取由ajax调用传递的数据。
但是我没有通过ajax调用发布数据而是获得2个错误:
Severity: Warning --> session_start(): Cannot send session cache limiter - headers already sent ...\..\\libraries\Session\Session.php 143
Severity: Warning --> Cannot modify header information - headers already sent ..\..\libraries\Session\Session.php 171
注意:
我没有使用session_start();在我的项目中的任何地方。
此错误指向session_start()方法,该方法位于Codeigniter库的Session.php文件中。它没有指向我的代码中的任何位置,所以我不确定在哪里寻找问题。
我已经在互联网上查了答案,但似乎没有人能解决这个问题。
有人可以解释我为什么会收到此错误,我该如何防止这种情况?
谢谢。
修改 根据其他答案中的建议,我已经检查并删除了所有代码中的空格。
这是我的javascript代码,其中进行了ajx调用。
$("#btnupdateAbout").click(function(){
$fname=$("#updatefname").val();
$lname=$("#updatelname").val();
$country=$("#updatecountry").val();
$locality=$("#updatelocality").val();
if($('#optradioMale').is(':checked')) { $gender="Male"; }
else{$gender="Female";}
$.ajax({
url:"http://localhost/Voyager/ProfileControls/updateAbout",
data:{'fname':$fname,'lname':$lname,'country':$country,'locality':$locality,'gender':$gender},
method:"POST",
contentType:false,
cache:false,
processData:false,
success:function(){
}
});
});
答案 0 :(得分:2)
请您查看此答案How to fix "Headers already sent" error in PHP
可能在设置标头之前抛出了一些输出/错误。
答案 1 :(得分:1)
在ajax调用期间在浏览器中使用F12并单击控制台和网络以查看您的ajax调用详细信息,有时由于弃用方法而发生错误,您需要更改php.ini中的某些php设置 喜欢
always_populate_raw_post_data = -1
如果您使用的是routes.php
,请确保使用正确的路径
答案 2 :(得分:0)
当您进行AJAX调用时,您正在调用Code-igniter入口点,该入口点将加载所有必需的库,包括启动会话。
不知道函数log_message()
正在做什么,但我相信尝试打印到STDOUT,然后你的代码或Code Igniter试图发送一些Headers。
您可以发布有关log_message()函数???
的大部分详细信息