问题描述
我在 excel 中创建了一个 API 调用来从 Wix 数据库中获取数据。
电话:
Dim http As Object,JSON As Object
Set http = CreateObject("MSXML2.XMLHTTP")
http.Open "GET","https://username.wixsite.com/mysite/_functions/Functionname",False
http.setRequestHeader "Authorization","myauthkey"
http.Send
MsgBox (http.responseText)
Wix 上的 javascript http 后端文件:
import { ok,notFound,serverError } from 'wix-http-functions';
import wixData from 'wixdata';
export function get_Wixdata() {
let options = {
"headers": {
"content-type": "application/json"
}
};
return wixData.query("wix data collection name")
.find()
.then(results => {
if (results.items.length > 0) {
options.body ={
"items": results.items
}
return ok(options);
}
})
}
我在 JSON 占位符上测试了调用(未经授权)并且运行良好。
只是试图调试正在发生的事情,因为我收到了 "" 作为响应。 即使我输入了错误的 API 密钥,我仍然会收到“”,即使是错误的网址,它仍然是“”响应。
我认为我所做的事情显然偏离了目标..
解决方法
您是否尝试将两个标头都放入请求中,如下所示:
let headers = new Headers({
'Content-Type': 'application/json','Authorization': '....'
});
,
问题在于 VBA 调用,不需要标头。
Dim https As Object,JSON As Object
Set https = CreateObject("MSXML2.XMLHTTP")
With CreateObject("Microsoft.XMLHTTP")
.Open "GET","end point url",False
.send
response = .responseText
End With