【问题标题】:Use cURL XPOST in JavaScript在 JavaScript 中使用 cURL XPOST
【发布时间】:2021-02-03 12:20:33
【问题描述】:
我已获得以下 cURL 功能:
curl -XPOST -u 'USERNAME:PASSWORD' http://distribution.virk.dk/cvr-permanent/virksomhed/_search -d '
{
"query":{"term":{"Vrvirksomhed.cvrNummer":"30714024"}}
}' | python -mjson.tool
如何将其转换为在我的 WordPress 网站上使用? (我需要在我的 JavaScript 中使用它)
目标是以 JSON 格式获取公司的信息,我会将其转换为对象。
有一个网站可以执行此操作(方式略有不同,https://cvrapi.dk/documentation),但我需要使用自己的用户名和密码在自己的网站上本地执行此操作。
【问题讨论】:
标签:
javascript
wordpress
curl
【解决方案1】:
简介
您的 Wordpress 站点使用 PHP 作为服务器语言,并且可能使用 Apache 或 Nginx 作为服务器应用程序。因此,默认情况下它不能运行 JS。
你的 JS 运行得怎么样了?
基本上,用户的网络浏览器通过HTTP/HTTPS协议与服务器通信并得到一些响应。服务器发送的响应可能包含<script> 标记,通过定义可以从中下载js 文件的src 或将实际的Javascript 代码定义为<script> 的内部HTML。反过来,网络浏览器能够执行 Javascript。
在浏览器中运行 JS 是个好主意吗?
在这种特定情况下,不,不,不。您拥有的 Javascript 代码中有非常私密的凭据,应该绝不将其发送到客户端浏览器。更广泛地说,在用户的浏览器中运行 Javascript 代码没有任何问题,但在您的具体情况下,由于您的特定代码的保密性,由于用户名和密码在其中,您应该避免这样做,而其他不那么隐秘的 Javascript 代码可以安全地在用户的浏览器中运行。
在添加对运行 Javascript 的支持之前
PHP 有 json_decode 函数,它将 JSON 转换为 PHP 对象(或 PHP 数组,取决于您如何调用它,请阅读文档以获取更多信息)。您在 PHP 中支持 cURL,因此无需运行 JS 代码即可执行 cURL。顺便说一句,cURL 也可以由本机 CLI 执行,例如参见 this。因此,仅仅为了让您的服务器通过 Javascript 本身运行 cURL 请求而进行技术更改是您的问题的过度复杂化并且是不必要的。如果您还需要使用 Javascript 做其他事情,那就另当别论了,因为您已经能够直接从 PHP 运行基于 cURL 的功能,或者将 cURL 命令编写为 CLI 命令(或文件)并且run that via PHP。因此,有两种比您打算应用的更简洁且更简单的解决方案。
运行 Javascript
如果您需要运行 Javascript 代码并从 Wordpress(更具体地说是 PHP)中检索其结果,那么您需要设置一个 Javascript-based server 并编写您自己的小型 Javascript 项目来为您执行 cURL然后在 PHP 中通过 CLI 运行 npm 命令以获得结果。但是,这又过于复杂了,与设置另一台服务器来处理您的服务器已经很好处理的事情相比,您拥有更简单、更整洁、更好的解决方案。