Javascript ajax中的POST方法给出一个错误';非法调用';?
我想在Ajax中使用POST方法获取JSON数据。我使用下面的代码来检索数据,但它给出了如下错误 TypeError:非法调用 在上面的链接中,我得到了JSON格式的数据。这里mylocalhost.com被我的IP和端口号替换Javascript ajax中的POST方法给出一个错误';非法调用';?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我想在Ajax中使用POST方法获取JSON数据。我使用下面的代码来检索数据,但它给出了如下错误 TypeError:非法调用 在上面的链接中,我得到了JSON格式的数据。这里mylocalhost.com被我的IP和端口号替换 var domain_url = "http://mylocalhost.com/statics"; var obj = { action: 'retrive', table: 'log', dataType: 'json', pro
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)
{
}
});
当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中存储的值可能不是您认为的值 错误发生在哪一行?我想可能是
选项:{{u id:{$lt:id}}
有问题。我认为不能将嵌套对象作为数据对象的一部分传入。每个值都必须是字符串。变量id
中有什么?这就是你的问题。@Andy我刚刚测试了一个三层嵌套的对象,$.ajax({url:“/”,键入:“POST”,数据:{a:{$lt:5}}}}})
,它工作正常;jQuery的结果查询字符串是a[\u id][$lt]=5
。我认为这可能是一个循环引用问题,但这会导致“超过最大调用堆栈大小”。这里似乎没有足够的内容来重现问题。要将副本应用于您的问题:id
的值要么是DOM对象,要么是包含DOM对象的对象(例如jQuery对象)。