एस्ट्रो संपर्क फ़ॉर्म एकीकरण (स्थैतिक और एसएसआर)
ईमेल सर्वर या डेटाबेस को बनाए रखे बिना लुगातु एंडपॉइंट का उपयोग करके एस्ट्रो स्टैटिक साइट्स (एसएसजी) और हाइब्रिड सर्वर मार्गों पर संपर्क फ़ॉर्म कैसे जोड़ें।
1. शुद्ध स्थैतिक साइट (एसएसजी) प्रपत्र अंतर्ग्रहण
एस्ट्रो डिफ़ॉल्ट रूप से शून्य-जावास्क्रिप्ट के लिए प्रसिद्ध है। लुगातु के साथ, आप मानक HTML फॉर्म और हल्के क्लाइंट-साइड फ़ेच के साथ पूछताछ एकत्र करते समय अपनी एस्ट्रो साइट को 100% स्थिर रख सकते हैं।
---
// 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. सर्वर एपीआई कुंजी के साथ एस्ट्रो हाइब्रिड / एसएसआर एपीआई रूट
यदि आपकी एस्ट्रो साइट क्लाउडफ्लेयर पेज, नेटलिफाई, या वर्सेल पर हाइब्रिड या एसएसआर मोड में चलती है, तो एस्ट्रो एपीआई रूट के माध्यम से सबमिशन को सुरक्षित रूप से अग्रेषित करें।
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' },
});
};
सुरक्षा एवं प्रमाणीकरण अपरिवर्तनीय
सुरक्षा निर्देश: एस्ट्रो क्लाइंट-साइड स्क्रिप्ट टैग में कभी भी आयात.मेटा.env.LUGATU_API_KEY को उजागर न करें। क्लाइंट स्क्रिप्ट को केवल सार्वजनिक समापन बिंदु का उपयोग करना चाहिए।
समस्या निवारण और सामान्य अंतर्ग्रहण त्रुटियाँ
सुनिश्चित करें कि आपके उत्पादन परिवेश चर (LUGATU_FORM_ID और LUGATU_API_KEY) आपके होस्टिंग डैशबोर्ड में कॉन्फ़िगर किए गए हैं।
अक्सर पूछे जाने वाले प्रश्नों
क्या मैं लुगातु के साथ अपनी एस्ट्रो साइट को 100% स्थिर रख सकता हूँ?
हाँ। शुद्ध स्थैतिक (एसएसजी) साइटें आपके होस्टिंग प्रदाता पर किसी भी सर्वर गणना की आवश्यकता के बिना सीधे लुगातु सार्वजनिक एंडपॉइंट पर सबमिट करती हैं।
क्या आप अपना फ़ॉर्म समापन बिंदु बनाने के लिए तैयार हैं?
कुछ ही सेकंड में निःशुल्क आरंभ करें। किसी क्रेडिट कार्ड की आवश्यकता नहीं.