ajax中的POST方法会出错“非法调用”?

时间:2014-10-07 14:04:56

标签: javascript jquery ajax json

我想在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)
    {
    }
});

1 个答案:

答案 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中的值存储可能不是你想象的那样。