Solución:
curl es un comando en linux (y una biblioteca en php). Curl normalmente realiza una solicitud HTTP.
Lo que realmente desea hacer es realizar una solicitud HTTP (o XHR) desde javascript.
Con este vocabulario, encontrará un montón de ejemplos, para empezar: Envío de encabezados de autorización con jquery y ajax
Esencialmente querrás llamar $.ajax
con algunas opciones para el encabezado, 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
}
})
Puede utilizar JavaScripts Fetch API (disponible en su navegador) para realizar solicitudes de red.
Si usa node, deberá instalar el paquete 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) );
Sí, use getJSONP. Es la única forma de realizar llamadas asíncronas entre dominios / servidores. (* O lo será en un futuro próximo). Algo como
$.getJSON('your-api-url/validate.php?'+$(this).serialize+'callback=?', function(data){
if(data)console.log(data);
});
El navegador completará automáticamente el parámetro de devolución de llamada, así que no se preocupe.
En el lado del servidor (‘validate.php’) tendrías algo como esto
<?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'));
?>