用javascript执行curl请求
Perform curl request in javascript?
是否可以用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()
函数解析它。
curl是linux中的命令(也是php中的库)。Curl通常会发出HTTP请求。
您真正想要做的是从javascript发出HTTP(或XHR)请求。
使用这个vocab,你会发现一堆例子,对于初学者来说:使用jquery和ajax 发送授权头
从本质上讲,您将希望调用$.ajax
,并为标头等提供一些选项。
$.ajax({
url: 'https://api.wit.ai/message?v=20140826&q=',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Bearer 6QXNMEMFHNY4FJ5ELNFMP5KRW52WFXN5")
}, success: function(data){
alert(data);
//process the JSON data etc
}
})
您可以使用JavaScripts Fetch API(在浏览器中可用)进行网络请求。
如果使用node,则需要安装nodefetch包。
const url = "https://api.wit.ai/message?v=20140826&q=";
const options = {
headers: {
Authorization: "Bearer 6Q************"
}
};
fetch(url, options)
.then( res => res.json() )
.then( data => console.log(data) );
是的,使用getJSONP。这是进行跨域/服务器异步调用的唯一方法。(*或者在不久的将来)。类似的东西
$.getJSON('your-api-url/validate.php?'+$(this).serialize+'callback=?', function(data){
if(data)console.log(data);
});
回调参数将由浏览器自动填写,所以不用担心。
在服务器端("validate.php"),您会有类似于以下的东西
<?php
if(isset($_GET))
{
//if condition is met
echo $_GET['callback'] . '(' . "{'message' : 'success', 'userID':'69', 'serial' : 'XYZ99UAUGDVD&orwhatever'}". ')';
}
else echo json_encode(array('error'=>'failed'));
?>
目前接受的答案是进行ajax调用,您可能需要处理跨站点问题。
但是,如果您只是想在服务器端运行Linux curl,就像使用PHP一样,那么您可以使用它。
以下是我使用nodejs执行curl请求的函数。
这是一个简单的异步函数,不需要节点外的特殊包。您可以对生成的数据和错误执行所需操作,也可以将其返回到另一个异步函数中使用。
例如,我只是登录了。
const util = require('util');
const exec = util.promisify(require('child_process').exec);
const goCurl = async (url) => {
const { stdout, stderr } = await exec(`curl '${url}'`);
console.log('data:', stdout);
console.error('err:', stderr);
}
const url = `https://static.canva.com/web/a7a51d4eae8626ead168.ltr.css`;
goCurl(url);
相关文章:
- 如何将给定的curl命令复制为jquery ajax请求
- 如何通过类比curl请求从JavaScript发出请求
- 将curl转换为节点请求
- HTTP请求使用cURL,但在浏览器中使用javascript时会得到CORS响应
- PHP中的Curl请求-使用API
- 带有节点.js的 curl 请求
- 将curl转换为ajax请求
- node.js请求js与curl相比失败
- 使用 ajax 发出 curl 请求
- 使用 cURL 请求 svg.sencha.io 时请求错误
- 节点.js服务器在浏览器中超时,但 cURL 请求有效
- 通过 javascript 或 jquery 中的 curl 请求将值发布到 golang
- 如何将这个curl请求转换为jquery请求
- PHP-Curl(存储在会话中的处理程序)+使用此处理程序的ajax请求
- 将CURL请求转换为云代码中的Parse.com HttpWebRequest
- 将curl选项传递给node-js-http请求
- 用javascript执行curl请求
- 相当于这个curl请求的Node.js
- 在Curl请求(PHP)中禁用Javascript
- 在angular中使用$http应用curl POST请求