Home / मार्गदर्शक / खगोल संपर्क फॉर्म एकत्रीकरण (स्थिर आणि SSR)
एकत्रीकरण मार्गदर्शक · खगोल आणि जामस्टॅक

खगोल संपर्क फॉर्म एकत्रीकरण (स्थिर आणि SSR)

ईमेल सर्व्हर किंवा डेटाबेस न ठेवता लुगाटू एंडपॉइंट्स वापरून ॲस्ट्रो स्टॅटिक साइट्स (एसएसजी) आणि हायब्रिड सर्व्हर मार्गांवर संपर्क फॉर्म कसे जोडायचे.

1. शुद्ध स्थिर साइट (SSG) फॉर्म अंतर्ग्रहण

ॲस्ट्रो डीफॉल्टनुसार शून्य-जावास्क्रिप्टसाठी प्रसिद्ध आहे. Lugatu सह, मानक HTML फॉर्म आणि लाइटवेट क्लायंट-साइड फेचसह चौकशी गोळा करताना तुम्ही तुमची Astro साइट 100% स्थिर ठेवू शकता.

src/pages/contact.astro astro
---
// src/pages/contact.astro
---
<form id="astro-contact-form" class="space-y-4 max-w-md">
  <div>
    <label class="block text-sm font-semibold mb-1">Your Name</label>
    <input type="text" name="name" required class="w-full border rounded-xl p-2.5" />
  </div>
  <div>
    <label class="block text-sm font-semibold mb-1">Email Address</label>
    <input type="email" name="email" required class="w-full border rounded-xl p-2.5" />
  </div>
  <div>
    <label class="block text-sm font-semibold mb-1">Message</label>
    <textarea name="message" rows="4" required class="w-full border rounded-xl p-2.5"></textarea>
  </div>

  <input type="text" name="_gotcha" style="display:none !important" tabindex="-1" autocomplete="off" />

  <button type="submit" class="btn-primary-editorial py-2.5 px-6">Send Message</button>
</form>

<script>
  const form = document.getElementById('astro-contact-form') as HTMLFormElement;
  form?.addEventListener('submit', async (e) => {
    e.preventDefault();
    const formData = new FormData(form);

    const payload = {
      fields: {
        name: formData.get('name'),
        email: formData.get('email'),
        message: formData.get('message'),
      },
      honeypot: formData.get('_gotcha') || '',
    };

    const res = await fetch('https://www.lugatu.com/api/v1/public/forms/YOUR_PUBLIC_FORM_ID/submissions', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
      body: JSON.stringify(payload),
    });

    if (res.ok) {
      alert('Thank you! Message delivered.');
      form.reset();
    }
  });
</script>

2. सर्व्हर API की सह Astro Hybrid / SSR API मार्ग

तुमची Astro साइट क्लाउडफ्लेअर पेजेस, Netlify किंवा Vercel वर हायब्रिड किंवा SSR मोडमध्ये चालत असल्यास, Astro API मार्गाने सबमिशन सुरक्षितपणे फॉरवर्ड करा.

src/pages/api/contact.ts typescript
import type { APIRoute } from 'astro';

export const POST: APIRoute = async ({ request }) => {
  const data = await request.formData();
  const fields = {
    name: data.get('name')?.toString(),
    email: data.get('email')?.toString(),
    message: data.get('message')?.toString(),
  };

  const res = await fetch(`https://www.lugatu.com/api/v1/forms/${import.meta.env.LUGATU_FORM_ID}/submissions`, {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${import.meta.env.LUGATU_API_KEY}`,
      'Content-Type': 'application/json',
      'Idempotency-Key': crypto.randomUUID(),
    },
    body: JSON.stringify({ fields }),
  });

  return new Response(JSON.stringify({ success: res.ok }), {
    status: res.status,
    headers: { 'Content-Type': 'application/json' },
  });
};

सुरक्षा आणि प्रमाणीकरण अपरिवर्तनीय

सुरक्षा सूचना: import.meta.env.LUGATU_API_KEY कधीही ॲस्ट्रो क्लायंट-साइड स्क्रिप्ट टॅगमध्ये उघड करू नका. क्लायंट स्क्रिप्टने फक्त सार्वजनिक एंडपॉइंट वापरणे आवश्यक आहे.

समस्यानिवारण आणि सामान्य अंतर्ग्रहण त्रुटी

फॉर्म स्थानिक पातळीवर कार्य करतो परंतु क्लाउडफ्लेअर / नेटलिफाई बिल्ड उत्पादनात अपयशी ठरतो

तुमच्या होस्टिंग डॅशबोर्डमध्ये तुमचे उत्पादन पर्यावरण व्हेरिएबल्स (LUGATU_FORM_ID आणि LUGATU_API_KEY) कॉन्फिगर केले असल्याची खात्री करा.

वारंवार विचारले जाणारे प्रश्न

मी माझी ॲस्ट्रो साइट लुगाटू सह 100% स्थिर ठेवू शकतो का?

होय. प्युअर स्टॅटिक (SSG) साइट्स तुमच्या होस्टिंग प्रदात्यावर कोणत्याही सर्व्हरची गणना न करता थेट Lugatu सार्वजनिक एंडपॉइंटवर सबमिट करतात.

तुमचा फॉर्म एंडपॉइंट तयार करण्यास तयार आहात?

काही सेकंदात विनामूल्य प्रारंभ करा. क्रेडिट कार्ड आवश्यक नाही.

विनामूल्य प्रारंभ करा →