我有点困惑为什么这个CI Ajax调用不起作用?如果我将$ SearchTerm设置为字符串,但是它没有收到来自AJAX的“搜索”POST,我会收到回复? Code Igniter中是否有需要更改的设置?谢谢!
jQuery.ajax({
type: "GET",
url: 'home/getAjaxData/',
data: 'search=1',
dataType: "json",
success: function(resp) {
Alert (resp);
}
});
public function getAjaxData() {
$SearchTerm = $this->input->post('search');
echo $SearchTerm;
}
答案 0 :(得分:0)
$(function(){
$.ajax({
type: "POST",
url: "<?php echo site_url('home/getAjaxData'); ?>",
data: {search:'1'},
dataType: "json",
success: function(resp) {
Alert (resp);
}
});
});
答案 1 :(得分:0)
您的代码$ this-&gt; input-&gt; post('search'),我认为它只适用于CodeIgniter中的post。您可以使用jQuery获取文本框的值,例如:
<input type="textbox" name="text" /><br/>
$('input[name="text"]').val();
在你的控制器中,正如@badbetonbreakbutbedbac所说,你可以通过以下方式获得搜索价值:
$search= (int)$_REQUEST['search'];
echo $search;
答案 2 :(得分:0)
如果ajax GET调用适用于CI,但ajax POST不起作用 - 请检查CSRF保护。禁用它进行测试(application / config / config.php):
$config['csrf_protection'] = FALSE;
如果然后ajax POST调用开始工作,您可以再次启用保护并添加ci_csrf_token作为ajax数据的一部分。
答案 3 :(得分:0)
将其更改为POST
而不是GET
jQuery.ajax({
type: "POST",
url: 'home/getAjaxData/',
data: 'search=1',
dataType: "json",
success: function(resp) {
alert(resp);
}
});
由于您通过POST发送数据,因此该功能将正常运行
public function getAjaxData() {
$SearchTerm = $this->input->post('search');
echo $SearchTerm;
}