JSONP请求返回数组,无法引用

时间:2014-12-19 21:51:50

标签: javascript jquery arrays ajax jsonp

我正在使用jQuery发送JSONP请求。这是我正在编写的代码的示例

$.ajax({
            'url': 'http://some.external/endpoint/',
            'type': 'GET',
            'traditional': true,
            'data': { 'id': someArrayOfIds },
            'dataType': 'jsonp',
            'success': function (data) {
                           console.log(data[0]);
            }
        });

从端点返回的数据是一个对象数组。但是,没有任何内容记录到控制台。奇怪的是:

$.ajax({
            'url': 'http://some.external/endpoint/',
            'type': 'GET',
            'traditional': true,
            'data': { 'id': someArrayOfIds },
            'dataType': 'jsonp',
            'success': function (data) {
                           console.log(data);
            }
        });

工作正常,它输出返回的数据。但是,如果我将data更改为data[0](或者,实际上,尝试对数组中的元素进行任何类型的处理),突然它不会显示任何记录内容。事实上,使用Chrome devtools实时编辑脚本并引用数组中的元素会导致页面崩溃。

我想出的解决方案是创建一个临时变量来将数据复制到:

'success': function (data) {
               var temp = data;
               console.log(temp[0]);
}

然而,我真的很好奇为什么会这样。我唯一能想到的就是JSONP回调正在发生的事情。有什么想法吗?

0 个答案:

没有答案