在JS中将GET转换为POST

时间:2012-05-13 19:11:08

标签: javascript jquery ajax json datatables

使用数据表。尝试使用POST获取工作功能(目前仅适用于GET)。

基于on this discussion我修改了this function并得到了类似下面的内容。现在收到错误消息:

json.aaData未定义@第99行

Whole code is here

        jQuery.post( sSource, aoData, function (data) { 
            /* Callback processing */
            oCache.lastJson = jQuery.extend(true, {}, data);

            if ( oCache.iCacheLower != oCache.iDisplayStart )
            {
                data.aaData.splice( 0, oCache.iDisplayStart-oCache.iCacheLower );
            }
            data.aaData.splice( oCache.iDisplayLength, data.aaData.length );

            fnCallback(data)
        },"json" );
    }
    else
    {
        json = jQuery.extend(true, {}, oCache.lastJson);
        json.sEcho = sEcho; /* Update the echo for each response */
        json.aaData.splice( 0, iRequestStart-oCache.iCacheLower ); // <- this line
        json.aaData.splice( iRequestLength, json.aaData.length );
        fnCallback(json);
        return;
    }
}

我错过了什么?有什么建议吗?

2 个答案:

答案 0 :(得分:1)

这是jQuery.post( sSource, aoData, function (data) {。您有aoData,但在代码中引用了aaData。这可能是一个错字。

答案 1 :(得分:0)

因此,您提供的完整代码示例可能不是完整代码,因为它只有75行,并且您收到的错误表明您在第99行上有一个未定义的属性。

但是,你确实说过这一行:

json.aaData.splice( 0, iRequestStart-oCache.iCacheLower );

给你未定义的错误。发生的事情是你正在尝试访问属性aaData的splice函数,这个函数由于某种原因在你的json对象上不存在。

因此,如果您打开JavaScript控制台并键入json.aaData,您将看到它返回undefined。所以无论设置什么,json变量的aaData属性都没有这样做。我希望这可以帮助您找出错误。