Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Javascript数组:AJAX、JSON_Arrays_Ajax_Json - Fatal编程技术网

Arrays Javascript数组:AJAX、JSON

Arrays Javascript数组:AJAX、JSON,arrays,ajax,json,Arrays,Ajax,Json,我是JS、JSON和AJAX的新手。我正在使用它在我的SAP环境中开发一个简单的应用程序。在将AJAX响应转换为java数组时,我有点吃惊。代码中包含的内容是: function addTable() { var urls = new Array(); $(document).ready(function () { var params = getURLParam().split('?'); $.post("GetBayDetails.ht

我是JS、JSON和AJAX的新手。我正在使用它在我的SAP环境中开发一个简单的应用程序。在将AJAX响应转换为java数组时,我有点吃惊。代码中包含的内容是:

function addTable()
{
    var urls = new Array();
    $(document).ready(function ()
    {
        var params = getURLParam().split('?');
        $.post("GetBayDetails.htm", {url: getURLParam(), params: params[1]})
                .done(function (data)
                {
                    var url = $.parseJSON(data);
                    urls.push(JSON.parse(url));
                    $.each(url, function (i, v)
                    {
                        push.urls[i] = v.bay;
                    });
                });
    });
    alert(urls[2]);
}

但是如果我在URL中循环,我看不到任何附加到数组的值。请任何人提供一些帮助来修复此问题?

试试这个。我的改变是:

将json数据类型参数用于$.post,以便它自动解析响应

无需在按需调用的函数中使用$document.ready。这仅在执行必须等待加载DOM的初始操作时才需要

没有必要调用JSON.parseurl,因为这已经被解析了

添加到URL数组的正确方法是url.pushv.bay

初始化数组的首选方法是使用[],而不是使用新数组

alerturls[2]需要位于.done函数中。否则,您将在AJAX调用完成之前发出警报


您已经在使用$.parseJSON解析响应,不需要再次调用JSON.parse。请发布一个JSON响应的示例。您好,JSON看起来像{bay:B01,url:thtrack1},{bay:B02,url:},{bay:B03,url:not defined},{bay:B04,url:},{bay:B05,url:colm2},{bay:B06,url:},这是无效的,数组需要[…]围绕它。请在问题中发布实际的JSON。SAP中的方法返回JSON为:[{bay:B01,url:},{bay:B02,url:},{bay:B03,url:},{bay:B04,url:},{bay:B05,url:},{bay:B06,url:}……]thnk u barmar,unf这对我来说也不起作用……在这里花更多的时间来确定问题!thkx现在可以了,但如果我必须引用帖子之外的数组,它就不起作用了……有什么要做的吗?请注意,当我在addTable的结束前尝试它时,我得到的消息是未定义的…我应该怎么做才能使它在帖子外面可见?请让我知道所有依赖于AJAX调用的操作都必须在回调函数中完成-请参阅我的更改6。另见
function addTable() {
    var urls = [];
    var params = getURLParam().split('?');
    $.post("GetBayDetails.htm", {url: getURLParam(), params: params[1]}, "json")
        .done(function (url) {
        $.each(url, function (i, v) {
            urls.push(v.bay);
        });
        alert(urls[2]);
    });

}