Как я могу использовать Airtable в качестве бэкэнда? - PullRequest
0 голосов
/ 28 ноября 2018

Я пытаюсь использовать Airtable в качестве бэкэнда для формы отправки в моем проекте.Тем не менее, я не могу интегрировать API и не знаю проблемы.Я использую React и axios.

Я очень плохо знаком с JS и 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);
        })
    })
};

Ответы [ 2 ]

0 голосов
/ 30 июля 2019

Airtable имеет библиотеку JavaScript , которая дает вам программный доступ к любой базе в пределах любых ваших таблиц Airtable.Airtable также генерирует полную документацию API для ваших баз.Вы можете найти свой API, перейдя по ссылке: https://airtable.com/api

Airtable API page

Выберите базу, и вы увидите полноценный 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');
0 голосов
/ 17 декабря 2018

Это похоже на ошибку в том, как вы структурируете свой вызов 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);
    })
})

Надеюсь, это поможет!

...