通过$ .ajax进行跨域请求

时间:2013-07-22 14:45:44

标签: javascript jsonp

考虑以下代码:

$("#btn1").click( function() {      

     $.ajax({ 
       type: "GET",
       dataType:       'jsonp',
       jsonpCallback: 'jsonCallback',  
       url: myurl,

        success: getObj,

        error: function (xhr, status, errorThrown) {

                    alert(xhr.statusText);

            alert(xhr.responseText);

            alert(xhr.status);

            alert(errorThrown);

                }           

    });

,成功函数是

function getObj(data) {




    $.each( data, function( key, value ) {

      alert( key + ": " + value );

        });
});

当我尝试直接访问url时,它会返回如下数据:

[{"id":405,"parentId":404,"createdBy":"iipaxAdm","displayName":"A-2013-04-1""eventCount":"0"},{"id":601,"parentId":404,"createdBy":"iipaxAdm","displayName":"A-2013-04-2","eventCount":"0"},{"id":701,"parentId":404,"createdBy":"iipaxAdm","displayName":"A-2013-04-3","eventCount":"3"}]

但是当遍历数据(返回结果)时,它只给出第一个结果:

{"id":405,"parentId":404,"createdBy":"iipaxAdm","displayName":"A-2013-04-1""eventCount":"0"},

在开发人员工具中检查时,响应包含所有结果。

如何确保数据应包含所有重新填充?

1 个答案:

答案 0 :(得分:-1)

可能是javascript认为它是字符串而不是对象。由于它是JSON,您可以使用JSON.parse(data)将数据作为对象或对象数组获取,然后遍历它。