在javascript中执行curl请求?

是否可以在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)请求。

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

是的,使用getJSONP。 这是进行跨域/服务器异步调用的唯一方法。 (*或者它将在不久的将来)。 就像是

 $.getJSON('your-api-url/validate.php?'+$(this).serialize+'callback=?', function(data){ if(data)console.log(data); }); 

回调参数将由浏览器自动填充,所以不用担心。

在服务器端(’validate.php’)你会有这样的东西

 'failed')); ?>