在代码点火器端访问 Ajax POST 变量时出现问题
Trouble Accessing Ajax POST variable on Codeigniter end
我正在使用jquery进行ajax调用。基本上我不知道如何通过 post 请求访问我发送到服务器的数据。我不知道变量叫什么或...东西。我不知道!
Ajax 函数:
function ajax_client(url, json) {
return $.ajax({
url: url,
type: 'POST',
data: json,
dataType: 'json'
});
}
function gather_records(data, inp_col, fetch_col, limit) {
var json = JSON.stringify({
"ids" : data,
"inp_col" : inp_col,
"fetch_col" : fetch_col,
"limit" : limit
});
return ajax_client(base_url+'ajax_port/gather_records', json);
}
点火器功能:
public function gather_records()
{
$data = json_decode($this->input->post('ids'));
log_message('debug', $data);//null
return json_encode($data);//null :(
}
我在这里从服务器接收数据(并使用jQuery访问)没有问题,我的问题是我无法获取要发送到codeigniter的数据。如果这有任何不同,我正在开发 MAMP。
我尝试了其他变量名称,例如,
$this->input->post('data');
$this->input->post('json');
似乎没有一个有效。非常感谢我能得到的任何帮助!
你不需要做JSON.stringify({..
只需传递一个对象,一切都会好起来的。我的意思是:
function ajax_client(url, json) {
return $.ajax({
url: url,
type: 'POST',
data: json,
dataType: 'json'
});
}
function gather_records(data, inp_col, fetch_col, limit) {
var json = {
"ids" : data,
"inp_col" : inp_col,
"fetch_col" : fetch_col,
"limit" : limit
};
return ajax_client(base_url+'ajax_port/gather_records', json);
}
还有一件事。你不需要在PHP端json_decode
它。因为默认内容jQuery
类型是'application/x-www-form-urlencoded; charset=UTF-8'
换行
$data = json_decode($this->input->post('ids'));
自
$data = $this->input->post('ids');
但是如果你真的想发送JSON,你可以添加contentType
return $.ajax({
url: url,
type: 'POST',
data: json,
contentType: 'application/json',
dataType: 'json'
});
您设置dataType
是"您希望从服务器返回的数据类型"。(http://api.jquery.com/jquery.ajax/)
相关文章:
- 简单的变量问题
- 局部全局变量问题 - JavaScript
- 递归承诺调用 - 内存范围变量问题
- 开关变量问题
- 简单的 Jquery 变量问题
- Javascript全局变量问题
- Javascript-通过引用传递变量问题
- AJAX请求在jQuery中获取函数,变量问题
- JSON JavaScript 未定义的变量问题
- PHP 和 JavaScript 组合变量问题
- JQuery Ajax 填补了 JavaScript 变量问题
- jQuery.ParseJSON 变量问题
- Ajax变量问题
- socket.io-使用命名空间时出现套接字变量问题
- AngularJS与SignalR$范围变量问题
- 使用事件处理程序(基本Javascript)时出现全局变量问题
- JavaScript 声明变量问题
- JavaScript变量问题的澄清
- jQuery变量问题
- JS -访问全局变量问题