【问题标题】:No response from APIAPI 无响应
【发布时间】:2021-03-25 10:58:16
【问题描述】:

我在 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 密钥,我仍然会得到“”,即使是错误的 url,它仍然是“”响应。

我认为我显然与我正在尝试做的事情相去甚远..

【问题讨论】:

  • 如果我按原样运行您的 VBA 代码,并在那里给出确切的 URL 和授权,我会得到一个 HTML 代码作为响应,说 “发生错误 404”
  • 这不是因为端点 url 是默认的,并且 auth 密钥是组成的吗?或者它可能与参考库有关,不太确定..
  • 我指的是你说无论你放什么,即使你输入了错误的网址,响应也是空的?请澄清,因为不清楚您是否告诉我们您的 MSXML2.XMLHTTP 根本不起作用,或者它是否是特定 URL 的问题。
  • 哦,抱歉,当我使用上面提交的代码运行代码时,它会返回 wix 错误页面,然后是 29 行带有一些 css 引用的 html。但是当我使用实际的 url 和 auth 键运行代码时,它会返回 ""
  • 倒数第二行不应该是})});吗?

标签: javascript vba api velo


【解决方案1】:

您是否尝试将两个标头都放入您的请求中,如下所示:

let headers = new Headers({ 
  'Content-Type': 'application/json', 
  'Authorization': '....' 
}); 

【讨论】:

  • 我将尝试创建一个 JS http 文件来返回“Hello”并且不让它链接到任何表等。然后看看我是否可以返回它,可能会帮助我缩小问题的范围
【解决方案2】:

问题在于 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

【讨论】:

  • 为了方便调查 API 端并确认服务器端正常工作,我推荐使用像 postman.com 这样的 API 开发工具,这样更容易首先调试你的 API。如果一切正常,则开始开发您的 VBA 代码。
  • 你能看出http函数不能工作的任何原因吗?试图将它与 hello world one 进行比较,但我不是最擅长 js。我还在控制台中测试了 wixData 查询,它确实返回了表格,所以我知道那部分是正确的。将查询/“选项”添加回调用似乎不正确。
猜你喜欢
  • 2014-05-08
  • 2019-01-01
  • 2021-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-15
  • 2019-01-26
相关资源
最近更新 更多