【问题标题】:Why is this not working? (fetch()/ getJSON() from WIX)为什么这不起作用? (来自 WIX 的 fetch()/getJSON())
【发布时间】:2021-06-23 16:16:26
【问题描述】:

我编写了以下代码来访问公司内部 API (https://developer.company-information.service.gov.uk/)。我已经用谷歌搜索并尝试了很多东西,但我不知道如何使用 fetch/getJSON 从这个 api 获取数据。请帮忙。我是 javascript 新手。

import { getJSON } from 'wix-fetch';
const baseURL = "https://api.companieshouse.gov.uk"

export function call_companieshouse_api(endpt, search_param){

    var api_key = btoa(key)
    var url = baseURL + endpt + search_param
  
    getJSON(url, {
        method: 'get',
        headers: {"Authorization": "Basic " + api_key,
            "Content-Type": "application/json",
            "Accept": "application/json"},
        credentials: "include",
        mode: "cors"
        })
        .then(json => console.log(json.someKey))
        .catch(err => console.log(err));
}

【问题讨论】:

  • 您检查过console.log(url) 以确认其格式正确吗?
  • 那么错误是什么?记录了什么? endptsearch_paramImpossible 的值是多少?我们很难猜测。
  • 我很怀疑 wix 标签是用于 wix-fetch 的
  • 报错如下:TypeError: Failed to fetch
  • 错误如下:TypeError:获取失败。 endpt="/search/companies?q=" 和 search_param 是公司编号。我编写了经常使用 API 的 python 和 VBA 代码,所以我确信这些值是正确的并且有效。让我感到困惑的是如何从 wix 中连接到 API。

标签: javascript api velo


【解决方案1】:

我已经成功了! 我不完全确定如何,但我会解释我做了什么(除了明显的代码更改)。 我创建了一个新的后端文件 .jsw,在这个文件中是以下代码。

import {fetch} from 'wix-fetch';
import btoa from 'btoa'
const baseURL = 'https://api.companieshouse.gov.uk';
var api_key = 'the api key';

export function call_companieshouse_api(endpt, search_param){
    var url = baseURL + endpt + search_param;
    var base64_key = btoa(api_key)

    return fetch(url, {
        method: 'GET',
        headers: {'Authorization': 'Basic ' + base64_key,
            'Content-Type': 'application/json',
            'Accept': 'application/json'},
        credentials: 'include',
        mode: "cors"
        }).then(response => response.json());
}

然后我有一个带有以下代码的按钮单击事件函数。

export function button1_click(event) {

    var search_param = $w('#input1').value;

    if (search_param.length <= 1) {
        $w('#box1').show();
        return;
    }

    var endpt = "/search/companies?q="

    call_companieshouse_api(endpt, search_param)
        .then(data => {
            console.log(data);
        });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-29
    • 2014-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多