【发布时间】:2014-09-15 15:05:40
【问题描述】:
我的 javascript 中有以下代码:
data = {};
data.token = '880a505d0a86b2sfwe434fdg43gwsf';
url = '/test/ajax/';
$.ajax({
url: url,
type: "POST",
data: data,
success: function(data) {
alert('success');
},
error: function(xhr, ajaxOptions, error) {
alert(xhr.status);
alert(error);
},
});
对于 PHP,在文本控制器(即 test.php)和 ajax 操作中,我有:
public function ajax()
{
$input = $this->input->post();
print_r($input['token']);
}
但我收到一条错误消息,提示未定义索引:令牌。谁能告诉我我做错了什么?
编辑:
请注意对 javascript 的修改。
data = {};
val = {
"name": 'John',
"id": 10,
}
data.user = JSON.stringify(val);
data.token = '880a505d0a86b2sfwe434fdg43gwsf';
url = '/test/ajax/';
$.ajax({
url: url,
type: "POST",
data: data,
success: function(data) {
alert('success');
},
error: function(xhr, ajaxOptions, error) {
alert(xhr.status);
alert(error);
},
});
在php中,我使用$this->input->is_ajax_request()检查了它是否是一个ajax请求,返回的值为false。我错过了什么吗?如有任何帮助,我将不胜感激。
【问题讨论】:
-
尝试
data = {'token':'880a505d0a86b2sfwe434fdg43gwsf'};,而不是在你的json字符串中使用data.token。 -
@ThinkDifferent:OP 的做法没有错;上面的建议不会对创建的对象和发送的数据产生任何影响。最终结果是相同的。
-
我这样做时收到 500 内部服务器错误。
-
试试这个
var data = "token=880a505d0a86b2sfwe434fdg43gwsf" -
@ZeeTee:那是错误的,原因与您的答案错误的原因相同。为什么将其发布为评论?它所做的只是绕过 jQuery 的正确序列化代码。
标签: jquery ajax codeigniter post