Realizar um pedido de curl em javascript?

É possível enviar um pedido de curl em jQuery ou javascript?

Algo do género:
curl \
-H 'Authorization: Bearer 6Q************' \
'https://api.wit.ai/message?v=20140826&q='

então, em PHP sobre a apresentação de uma forma, como esta:

$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);

o que estou a tentar fazer é executar este pedido de maldição, que devolve o json e depois planeio analisá-lo com a função $.get() do jQuery.

Author: wordSmith, 2014-08-27

2 answers

Curl é um comando (em linux e PHP). O Curl normalmente faz um pedido HTTP.

O que você realmente quer fazer é fazer um pedido HTTP (ou XHR) do javascript.

Usando este vocab você vai encontrar um monte de exemplos, para começar: A enviar os cabeçalhos das autorizações com jquery e ajax.

Basicamente você vai querer chamar $.ajax com algumas opções para o cabeçalho, etc.

$.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
        }
})
 24
Author: Amir T, 2017-05-23 12:17:54
Sim, usa o getJSONP. É a única maneira de fazer chamadas de domínio Cruz/servidor async. (*Ou será num futuro próximo). Algo como
$.getJSON('your-api-url/validate.php?'+$(this).serialize+'callback=?', function(data){
if(data)console.log(data);
});

O parâmetro de callback será preenchido automaticamente pelo navegador, por isso não se preocupe.

Do lado do servidor ('validar.você teria algo assim

<?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'));
?>
 1
Author: Pedro Serpa, 2017-11-02 21:51:21