0

我是 javascript 的新手。我正在尝试使用以下代码来检索跨站点数据。

我怎样才能做这个代码工作,例如我希望每个家庭成员都被提醒到屏幕上。

感谢您的帮助。

代码修改成这样,alert说[object Object],你知道这是什么意思吗??:

<html>
<head>
<script type="text/javascript" 

src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">

      // LOOP THROUGH EACH FAMILY MEMBER AND DO STUFF!
      alert(mValue)
    });
}
});
</script>
</head>
<body>
</body>
</html>
4

3 回答 3

1

你不想oData用 jQuery 在你的 $.each 中包装

所以,而不是

$.each($(oData['ops:patent-family']['ops:family-member']),

你要:

$.each(oData['ops:patent-family']['ops:family-member'],

此外 - 您必须使用返回的 json 降低一个级别(有第一个 'ops:world-patent-data' 级别),它看起来更像:

if(oData['ops:world-patent-data'] && 
  oData['ops:world-patent-data']['ops:patent-family'] && 
  oData['ops:world-patent-data']['ops:patent-family']['ops:family-member']){

  $.each(oData['ops:world-patent-data']['ops:patent-family']['ops:family-member'],
    function(iIndex, mValue) {
      // LOOP THROUGH EACH FAMILY MEMBER AND DO STUFF!
      console.log(iIndex, mValue)
    });

}

另一种完全不同的方法是使用 jquery deferreds 语法并使用 .pipe 来转换数据 - 可能比if

var sUrl =  "http://ops.epo.org/2.6.2/rest-services/family/publication/docdb/EP.1000000.A1/.js?callback=?";    

$.getJSON(sUrl)
.pipe(function(data){
    try{
        return data['ops:world-patent-data']['ops:patent-family']['ops:family-member'];
    } catch(e){
        return [];
    }
})
.then(function(members){
    $.each(members, function(iIndex, mValue){ 
        console.log(iIndex, mValue)
    })
})
于 2012-10-23T17:08:09.590 回答
0

您需要创建内联脚本:

    function myCallback(response) {
        // Your stuff goes here.
    }
    var script = document.createElement("script");
    script.src = "http://ops.epo.org/2.6.2/rest-services/family/publication/docdb/EP.1000000.A1/.js?callback=myCallback";
    script.type = "text/javascript";
    document.getElementsByTagName("head")[0].appendChild(script);
于 2012-10-23T17:08:40.693 回答
0

jQuery 的 $.ajax 方法允许您为请求指定数据类型。如果您指定 JSONP,它将为您创建回调,因此您不必担心。

它是这样的:

$.ajax(url, {
    dataType: 'jsonp',
    success: function(data) {
        // do stuff with data here
    }
});​

这是一个 JSFiddle 演示了您需要的数据:http: //jsfiddle.net/PPVX3/

现在它正在将数据记录到控制台,如果您使用的是 Chrome 或 Firefox,您可以使用开发人员工具查看控制台日志。

于 2012-10-23T17:14:33.643 回答