即使在指定回调时,也会使用getJSON获取跨域错误

时间:2015-02-02 16:46:58

标签: javascript jquery json cross-domain jsonp

我正在尝试使用以下内容从Worldcat获取有关某些书籍的元数据:

$.getJSON( " http://xisbn.worldcat.org/webservices/xid/isbn/" + $isbn[1] + "?method=getMetadata&format=json&callback=mymethod&fl=*");

其中$ isbn [1]是十位或十三位数字(0123456789有效)。

我可以放http://xisbn.worldcat.org/webservices/xid/isbn/0123456789?method=getMetadata&format=json&callback=mymethod&fl= *并得到我需要的结果,但我不会跨域来做那件事。

控制台正在报告XMLHttpRequest cannot load http://xisbn.worldcat.org/webservices/xid/isbn/0123456789?method=getMetadata&format=json&callback=mymethod&fl=*. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.

我在jsfiddle上做这一切。想想也许这可能是我在当地尝试的问题,但没有区别。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我没有正确遵循API文档,而是将成功处理程序的名称放在URL中,而不是将其作为数据参数发送。

我有:

 $.getJSON( "http://example.com?method=getMetadata&format=json&callback=mymethod&fl=*");

但这应该是:

$.getJSON( "http:/example.com?method=getMetadata&format=json&fl=*&callback=?", mymethod);