在javascript中执行curl请求?

wor*_*ith 30 javascript jquery curl

是否可以在jQuery或javascript中发送curl请求?

像这样的东西:

curl \
-H 'Authorization: Bearer 6Q************' \
'https://api.wit.ai/message?v=20140826&q='
Run Code Online (Sandbox Code Playgroud)

所以,在提交表单的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);
Run Code Online (Sandbox Code Playgroud)

我正在尝试做的是执行这个curl请求,返回json,然后我打算用jQuery的$.get()函数解析它.

Ami*_*r T 32

curl是一个命令(在linux和PHP中).Curl通常会发出HTTP请求.

你真正想做的是从javascript发出HTTP(或XHR)请求.

使用此词汇,您将找到一堆示例,对于初学者: 使用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
        }
})
Run Code Online (Sandbox Code Playgroud)

  • 我收到一个XMLHttpRequest无法加载https://api.wit.ai/message?v=20140826&q=。请求的资源上不存在“ Access-Control-Allow-Origin”标头。如何传递该标头? (2认同)

JSO*_*C11 14

您可以使用 JavaScripts Fetch API(在您的浏览器中可用)来发出网络请求。

如果使用 node,则需要安装node-fetch包。

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) );
Run Code Online (Sandbox Code Playgroud)

  • @AkashTyagi 如果不是 HTTP,你认为使用什么来获取? (3认同)