AJAX post值在到达CI控制器后变为布尔值
我在谷歌搜索了好几天,但仍然没有找到解决这个问题的答案。我有这个ajax函数,它可以更新mysql数据库中的记录。当我使用ajax插入新记录时,一切都很顺利,但当我通过ajax更新此记录时,它会给我403个禁止的响应。当我使用var_dump检查从ajax传递的值时,所有值都变成了布尔值。下面是我的代码,希望你能帮助我 Ajax更新AJAX post值在到达CI控制器后变为布尔值,ajax,codeigniter,Ajax,Codeigniter,我在谷歌搜索了好几天,但仍然没有找到解决这个问题的答案。我有这个ajax函数,它可以更新mysql数据库中的记录。当我使用ajax插入新记录时,一切都很顺利,但当我通过ajax更新此记录时,它会给我403个禁止的响应。当我使用var_dump检查从ajax传递的值时,所有值都变成了布尔值。下面是我的代码,希望你能帮助我 Ajax更新 $.ajax({ url:'updateDeal', async:false, type:'post', data:{
$.ajax({
url:'updateDeal',
async:false,
type:'post',
data:{
dealId:dealId,
dealName:dealName,
dealLocation:dealLocation,
dealCategory:dealCategory,
dealDescription:description,
dealValidDate:dealValidDate,
dealRegularPrice:dealRegularPrice,
dealPromoPrice:dealPromoPrice,
dealHighlights:tourHighlight,
dealInclusion:inclusions,
dealItenerary:itinerary,
dealAdditionalServices:additional,
isPromo:isPromo,
isPublish:isPublish
},
beforeSend: function(){
$('.image-loader').show();
},
success:function(results){
var obj = $.parseJSON(results);
if(!obj.hasError){
$('.image-loader').hide();
window.location = 'success?id=2';
}
}
});
控制器
public function updateDeal(){
$data = array(
"Id" => $this->input->post('dealId'),
"dealName" => $this->input->post('dealName'),
"dealLocation" => $this->input->post('dealLocation'),
"dealCategory" => $this->input->post('dealCategory'),
"dealDescription" => $this->input->post('dealDescription'),
"dealValidDate" => $this->input->post('dealValidDate'),
"dealRegularPrice" => $this->input->post('dealRegularPrice'),
"dealPromoPrice" => $this->input->post('dealPromoPrice'),
"dealHighlights" => $this->input->post('dealHighlights'),
"dealInclusion" => $this->input->post('dealInclusion'),
"dealItenerary" => $this->input->post('dealItenerary'),
"dealAdditionalServices" => $this->input->post('dealAdditionalServices'),
"isPromo" => $this->input->post('isPromo'),
"isPublished" => $this->input->post('isPublish')
);
var_dump($data);
}
结果
array(14) {
["Id"]=>
bool(false)
["dealName"]=>
bool(false)
["dealLocation"]=>
bool(false)
["dealCategory"]=>
bool(false)
["dealDescription"]=>
bool(false)
["dealValidDate"]=>
bool(false)
["dealRegularPrice"]=>
bool(false)
["dealPromoPrice"]=>
bool(false)
["dealHighlights"]=>
bool(false)
["dealInclusion"]=>
bool(false)
["dealItenerary"]=>
bool(false)
["dealAdditionalServices"]=>
bool(false)
["isPromo"]=>
bool(false)
["isPublished"]=>
bool(false)
}
我认为在发送ajax请求时,上的url会出现一些混乱 在ajax请求中尝试以下操作:
url : 'yourcontrollername/updateDeal';
我已经解决了我的问题,是mod_安全人员一直在阻止参数。谢谢你var\u dump$this->input->post;这将证明更有用。请使用此数据更新您的问题。您可能需要执行以下“dealId”:dealId,这样javascript就不会混淆变量名和索引名。@MonkeyZeus,我尝试了您的建议,但得到了相同的结果。我通过在每个输入->post中使用var_dump来更改变量名并检查输出。但我认为问题不在于ajax,因为我注意到所有Response的状态代码都是403 forbidden,这是没有意义的,因为得到403:forbidden意味着您永远无法看到您在问题中发布的输出。我认为你应该仔细看看莫哈迈德的答案,因为他在正确的轨道上。如果你只是回应“你好,世界”;在这个函数中,去掉剩下的代码,那么当你访问www.yourwebsite.com/controllerName/updateDeal时,你会得到什么?嗨@Mohmmad,我已经尝试过了,但仍然给我403个响应。你能给我看一下表单或视图吗,这样我们就可以找到问题了