我想在Ajax中使用POST方法获取JSON数据。我使用下面的代码来检索数据,但它给出了一个错误,如
TypeError:非法调用
http://mylocalhost.com/statics?action=retrive&table=log
在上面的链接中,我获得了JSON格式的数据。这里mylocalhost.com被我的IP和端口号取代。
var domain_url = "http://mylocalhost.com/statics";
var obj = {
action: 'retrive',
table: 'log',
dataType: 'json',
processData: false,
limit: 20,
option: {_id: {$lt :id}}
};
console.log(obj)
$.ajax({
url: domain_url,
type: 'POST',
data: obj,
success: function(data, res){
console.log(data)
},
error: function (errorThrown, res)
{
}
});
答案 0 :(得分:1)
当jQuery尝试获取您传入的对象并将其转换为参数以传递给服务器时,会发生错误。问题在于你的变量id中的内容。当它是一个字符串/数字时就可以了。
var id = 123;
var opt = {option: {_id: {$lt : id}}};
var qs = $.param(opt); //fine
当有人试图引用对象的属性时,通常会出现错误,但最终只是设置对象。
var id = document.getElementsByTagName("input")[0];
var opt = {option: {_id: {$lt : id}}};
var qs = $.param(opt); //results in "Illegal invocation"
所以id中的值存储可能不是你想象的那样。