我正在尝试从客户端向Watson Assistant API发出ajax请求,所以我在php中使用了这个代码工作正常但是当我尝试在jQuery中创建它时,我得到了401未经授权的错误。
的 PHP:
$data['input']['text'] = $_POST['message'];
if(isset($_POST['context']) && $_POST['context']){
$data['context'] = json_decode($_POST['context'], JSON_UNESCAPED_UNICODE);
}
$data['alternate_intents'] = false;
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
// Post the json to the Watson API via cURL.
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, 'https://watson-api-explorer.mybluemix.net/conversation/api/v1/workspaces/'.$workspace_id.'/message?version='.$release_date);
curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);
curl_setopt($ch, CURLOPT_POST, true );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$result = trim( curl_exec( $ch ) );
curl_close($ch);
// Responce the result.
echo json_encode($result, JSON_UNESCAPED_UNICODE);
JS:
$.ajax({
url: apiUrl,
type: 'POST',
dataType: 'json',
data: {
message: message,
context: context
},
headers:{
'Authorization' : 'Basic' + btoa('f7be829c-ae6d-47d8-b2bd-65a40ad45aa' +':'+ 'hJcToxQ23Zk'),
},
contentType: 'application/json',
timeout:10000
})
JS代码中缺少什么?
注意:提到的凭证仅供参考。