我正在尝试将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;
文档还提出以下几点:
如何在Vue中复制此示例请求(最好使用Axios,但允许使用XMLHttpRequest等其他方法)?
到目前为止,我已经尝试了以下两种方法(将令牌,userId,accountId,方法,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
axios.post(url, xml)
.then(res => {
console.log(res);
})
.catch(err=>{
console.log(err)
})
在上述两个示例中,收到的响应都是baseURL的XML,而不是zapiPing方法的预期响应。
谢谢!