Javascript 如何在PHP中实现ajax?
我需要一些帮助,我有一个jqueryajax函数,我想用PHP来实现它Javascript 如何在PHP中实现ajax?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我需要一些帮助,我有一个jqueryajax函数,我想用PHP来实现它 var accessToken = '237d48b642d5443495a9ec62811c97d7'; $.ajax({ type: 'POST', url: 'https://api.api.ai/api/query?v=20150910', contentType: 'application/json; charset=utf-8', da
var accessToken = '237d48b642d5443495a9ec62811c97d7';
$.ajax({
type: 'POST',
url: 'https://api.api.ai/api/query?v=20150910',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
headers: {'Authorization': 'Bearer' + accessToken},
data: JSON.stringify({query: 'hello u, sessionId: '1'}),
success: function(data){
setResponse(data.result.fulfillment.speech);
}
});
我想将上述ajax转换为php,我已经完成了以下工作:
$accessToken = '237d48b642d5443495a9ec62811c97d7';
$url = 'https://api.api.ai/api/query?v=20150910';
$data = ['query'=>'stupid', 'sessionId'=>'123'];
$options = array(
'http' => array(
'method' => 'POST',
'content' => json_encode($data),
'header'=> ["Authorization" => "Bearer" . $accessToken "\r\n"] .
"Content-Type: application/json\r\n"
)
);
$context = stream_context_create( $options );
$result = file_get_contents( $url, false, $context );
$response = json_decode( $result );
但我遇到了一个错误,不知道如何解决它
请提供帮助。尝试切换到PHP CURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'https://api.api.ai/api/query?v=20150910');
curl_setopt($ch, CURLOPT_POST, 1);
$data = array('query'=>'stupid', 'sessionId'=>'123');
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query($data));
$accessToken = '237d48b642d5443495a9ec62811c97d7';
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer'.$accessToken,
'Content-Type: application/json'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec($ch);
$response = json_decode( $server_output );
curl_close ($ch);
JS
PHP
发布错误回溯。JSON中有一个语法错误:JSON.stringify{query:'hello u,sessionId:'1',关闭引号properlyTry php cURL以实现此目的语法突出显示编辑器非常适合发现错误,停止使用记事本。我收到此错误stdClass对象[id]=>2bb036be-05e0-49c2-953b-dcd5200d2326[时间戳]=>2017-09-27T03:27:21.119Z[lang]=>en[status]=>stdClass Object[code]=>400[errorType]=>bad_请求[errorDetails]=>无法解析json。请验证您的json。修复了代码中的一些错误,请告诉我它是否有效。我收到了此错误的含义警告:文件\u获取\u内容:无法打开流:HTTP请求失败!第15行的HTTP/1.0 401 Unauthorized in/Applications/XAMPP/xamppfiles/htdocs/test1/index.php修复了它,授权丢失了。它起作用了。非常感谢你的帮助。非常感谢这个问题,当你有机会的时候,请选择正确的答案。谢谢
var accessToken = '237d48b642d5443495a9ec62811c97d7';
$.ajax({
type: 'POST',
url: 'https://api.api.ai/api/query?v=20150910',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
headers: {'Authorization': 'Bearer' + accessToken},
data: JSON.stringify({query: 'hello u', sessionId: '1'}),
success: function(data){
setResponse(data.result.fulfillment.speech);
}
});
$accessToken = '237d48b642d5443495a9ec62811c97d7';
$url = 'https://api.api.ai/api/query?v=20150910';
$data = array('query'=>"hello u", 'sessionId'=>1,'lang'=>'en');
$options = array(
'http' => array(
'method' => 'POST',
'content' => json_encode($data),
'header'=>"Authorization: Bearer " . $accessToken. "\r\n" .
"Content-Type: application/json\r\n"
)
);
$context = stream_context_create( $options );
$result = file_get_contents( $url, false, $context );
$response = json_decode( $result );