Python请求句柄url包含回调



https://www.goodreads.com/api/index包含一个如何通过js 调用json api的示例

<script type="text/javascript">
function myCallback(result) {
alert('nb of reviews for book: ' + result.reviews.length);
}
var scriptTag = document.createElement('script');
scriptTag.src = "https://www.goodreads.com/book/isbn/0441172717?callback=myCallback&format=json&user_id=123456789";
document.getElementsByTagName('head')[0].appendChild(scriptTag);
</script>

坦率地说,url可能包含回调函数名,这对我来说太奇怪了。这里有什么秘密?有相关的js文档吗?

无论如何,这是一个javascript示例。如果我想使用pythonrequests来做同样的工作。我该怎么做,该怎么做?

我完全被困在这里了。

谢谢你的建议。

这种类型的调用实际上只在浏览器中使用,因此它不适用于Python请求。

这是一个JSONP请求的例子,这是一种发出跨源请求的方式,例如,您在foobar.com服务的应用程序希望向example.com发出POST请求。在许多(但不是所有(情况下,出于安全原因,浏览器会阻止此类请求。

在这种情况下,请求的结果被传递给回调,然后由浏览器执行。

之前已经问过相关问题,这里有一个关于JSONP的很好的解释——它是如何工作的,以及你为什么要在这里使用它:https://stackoverflow.com/a/2067584/3084820

如果您使用的是requests,则不会有跨源问题,因为您将从服务器端发出请求。我不熟悉goodreads API,但我怀疑它们有一个可以从服务器调用的端点版本。

注意:Goodreads API相当奇怪,并且没有很好的文档记录。我对此进行了讨论,并能够使用requests使其工作,但EG您需要将API密钥发送为key=...,而不是user_id=...

最新更新