Я пытаюсь использовать API для системы бронирования малого бизнеса, на котором я работаю, для улучшения нашего сайта Vue. Документация API предоставляет следующий пример запроса с использованием PHP:
<?php
//Change the following
//
$host = "hostUrl";
$token = "zapiApiToken";
$accountId = "accountId";
$userId = "userId";
$xmlRequest = ("
<request>
<zapiToken>$token</zapiToken>
<zapiAccountId>$accountId</zapiAccountId>
<zapiUserId>$userId</zapiUserId>
<zapiMethod>
<methodName>zapiPing</methodName>
</zapiMethod>
</request>
");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ($xmlRequest));
$response = curl_exec ($ch);
curl_close ($ch);
//parse out the XML here, and do stuff
//
echo ("$response");
exit;
В документации также указаны следующие пункты:
- Все запросы POST
- Все запросы в XML, правильно отформатированы для каждого вызова функции
- Все ответы в XML
Как мне реплицировать этот пример запроса в Vue (желательно с использованием Axios, но открытым для других методов, таких как XMLHttpRequest)?
До сих пор я пробовал два следующих метода (с токеном, userId, accountId, method, url, xml, определенным как переменные):
XMLHttpRequest
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(xhttp.responseText);
}
};
xhttp.open("POST", url, true);
xhttp.send(xml);
Вардар
axios.post(url, xml)
.then(res => {
console.log(res);
})
.catch(err=>{
console.log(err)
})
В обоих приведенных выше примерах получен ответ - XML baseURL, а не ожидаемый ответ метода zapiPing.
Заранее спасибо!