javascript - Python 请求句柄 url 包含回调

标签 javascript python api promise python-requests

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 可以包含回调函数名称。这里有什么 secret ?有相关的js文档吗?

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

我完全被困在这里了。

感谢您的建议。

最佳答案

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

这是一个 JSONP 请求的示例,这是一种创建 cross-origin request 的方法。 ,EG,您在 foobar.com 上提供的应用想要向 example.com 发出 POST 请求。在许多(但不是全部)情况下,出于安全原因,您的浏览器会阻止此类请求。

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

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

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

注意:Goodreads API 相当奇怪并且没有详细记录。我对此进行了尝试,并能够使用 requests 让它工作,但是 EG 您需要将 API key 作为 key=... 而不是 user_id 发送=...

关于javascript - Python 请求句柄 url 包含回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801382/

相关文章:

javascript - 在 XUL JavaScript 中使用 10 秒自动关闭提示框

python - 集成在客户端的轻量级网络服务器

python - 如何提高神经网络的准确率?

api - 在 org.apache.catalina.core.JreMemoryLeakPreventionListener 中急切调用 URLConnection 的 setDefaultUseCaches(false) 的原因是什么

c# - 为什么我的 API 返回 {}

ios - swift PUT API 调用缺少参数

javascript - 使 d3 中的子节点靠近父节点

javascript - 传递 net.socket 作为参数

javascript - Chai 数组包含任何成员?

python - 下载并解压 Zip 文件