可以用jQuery或JavaScript发送curl请求吗?
就像这样:
curl \
-H 'Authorization: Bearer 6Q************' \
'https://api.wit.ai/message?v=20140826&q='
字符串
所以,在PHP中提交一个表单,像这样:
$header = array('Authorization: Bearer 6Q************');
$ch = curl_init("https://api.wit.ai/message?q=".urlEncode($_GET['input']));
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
curl_close($ch);
型
我正在尝试执行这个curl请求,它返回json,然后我计划用jQuery的$.get()
函数解析它。
5条答案
按热度按时间mf98qq941#
curl是一个command in linux(和一个library in php)。Curl通常会发出一个HTTP请求。
你真正想做的是从JavaScript发出一个HTTP(或XHR)请求。
对于初学者来说,使用这个词汇表你会发现一堆例子:Sending authorization headers with jquery and ajax
本质上,你会想调用
$.ajax
,并为头部等提供一些选项。字符串
wpx232ag2#
您可以使用JavaScriptFetch API(在浏览器中可用)发出网络请求。
如果使用node,则需要安装node-fetch包。
字符串
nwsw7zdq3#
是的,使用getJSONP。这是进行跨域/服务器Java调用的唯一方法。(* 或者在不久的将来)。类似于
字符串
回调参数将由浏览器自动填充,所以不用担心。
在服务器端('validate.php'),您将看到类似于以下内容的内容
型
yh2wf1be4#
既然你可以在两个不同的地方使用JavaScript:客户端和服务器,我将尝试分享两者。
客户端首先使用:
JavaScript有原生的Ajax支持,带有XMLHTTPRequest(但更难使用)
字符串
我会使用Fetch API,因为它更友好:
型
现在服务器:
在JavaScript/NodeJs中运行cURL有几个选项,
1.使用exec命令,执行命令,包括cURL
1.使用node-libcurl,作为libcurl API的绑定
1.使用具有相同目标的替代方案!由于cURL的目标是请求HTTP,因此我们在这里有几个选项,包括:
我在这里写了更多关于这个:How to use cuRL in Javascript and it's alternative.,请随意阅读。
exec comamnd示例
型
node-libcurl示例
型
Axios示例(作为替代)
型
我希望它能帮上忙!
hsgswve45#
目前接受的答案是进行远程呼叫,您可能必须处理跨站点问题。
但是如果您只是想在服务器端运行Linux curl,就像使用PHP一样,那么可以使用这个。
下面是我使用nodejs执行curl请求的函数。
这是一个简单的blog函数,不需要node之外的特殊包。你可以对结果数据和错误做你想做的事情,或者返回它在另一个blog函数中使用。
我只是举个例子。
字符串