0

我正在尝试在我的项目中使用 Airtable 作为提交表单的后端。但是,我似乎无法集成 API,也不知道问题所在。我正在使用 React 和 axios。

我对 JS 和 Airtable 都很陌生。

以下是我的错误代码:

提交表单后浏览器出错:

Airtable 错误:{“error”:{“type”:“INVALID_REQUEST_MISSING_FIELDS”,“message”:“在请求正文中找不到字段“fields”}}

有人可以请我做错了吗?提前非常感谢!

下面是我的代码:

var form = document.querySelector("#bize-ulasin");
if(form) {

form.addEventListener("submit", function(event) {
    event.preventDefault();
axios.post(airtable_write_endpoint, 
    {
        "Content-Type": "application/json"
    } ,
    {
         "fields": {
            "AdSoyad": document.getElementById("#Ad-Soyad"),
            "Email": document.getElementById("#Email"),
            "Telefon": document.getElementById("#Telefon"),
            "Konu": document.getElementById("#Konu"),
            "Mesaj": document.getElementById("#Mesaj"),
            "Ortam": "Websitesi"
        }
    })
    .then(function(response) {
    console.log(response);
        })
        .catch(function(error) {
        console.log(error);
        })
    })
};
4

3 回答 3

0

Airtable 有一个JavaScript 包,可让您以编程方式访问任何 Airtable 工作表中的任何基础。Airtable 还为您的基地生成完整的 API 文档。您可以在访问时找到您的 API:https ://airtable.com/api

Airtable API 页面

选择一个基础,您将看到一个包含示例调用和所有内容的成熟 API。

它显示了完整的 JavaScript 示例:

EXAMPLE USING ENVIRONMENT VARIABLE
# Shell:
$ export AIRTABLE_API_KEY=YOUR_API_KEY

# Node:
const base = require('airtable').base('YOUR_AIRTABLE_BASE');
EXAMPLE USING CUSTOM CONFIGURATION
var Airtable = require('airtable');
Airtable.configure({
    endpointUrl: 'https://api.airtable.com',
    apiKey: 'YOUR_API_KEY'
});
var base = Airtable.base('YOUR_AIRTABLE_BASE');
于 2019-07-30T11:22:46.453 回答
0

这看起来像是您如何构建 axios 调用的错误。看起来您实际上是{"Content-Type": "application/json"}在 POST 调用中作为有效负载而不是第二个参数传递。您应该能够通过重新排序调用中的参数来修复:

axios.post(airtable_write_endpoint, 
    {
         "fields": {
            "AdSoyad": document.getElementById("#Ad-Soyad"),
            "Email": document.getElementById("#Email"),
            "Telefon": document.getElementById("#Telefon"),
            "Konu": document.getElementById("#Konu"),
            "Mesaj": document.getElementById("#Mesaj"),
            "Ortam": "Websitesi"
        },
    }        
    {
        headers: { "Content-Type": "application/json"}
    })
    .then(function(response) {
        console.log(response);
    })
    .catch(function(error) {
        console.log(error);
    })
})

希望有帮助!

于 2018-12-17T16:48:11.887 回答
-1

"AdSoyad": document.getElementById("idname")选择相关的html元素,没有值

您可以使用"AdSoyad": document.getElementById("Ad-Soyad").value和不使用 id tag( #) 来解决,您已经写过getElementById不需要#

于 2020-05-13T00:15:03.540 回答