Files

44 lines
1.3 KiB
JavaScript

async function fetchTime() {
const el = document.getElementById('server-time');
el.textContent = 'Loading...';
try {
const res = await fetch('/api/time');
const data = await res.json();
el.textContent = data.time;
} catch (e) {
el.textContent = 'Error: ' + e.message;
}
}
async function fetchGreeting() {
const name = document.getElementById('name-input').value || 'World';
const el = document.getElementById('greeting');
el.textContent = 'Loading...';
try {
const res = await fetch('/api/hello?name=' + encodeURIComponent(name));
const data = await res.json();
el.textContent = data.message;
} catch (e) {
el.textContent = 'Error: ' + e.message;
}
}
async function fetchEcho() {
const input = document.getElementById('echo-input').value;
const el = document.getElementById('echo-result');
el.textContent = 'Loading...';
try {
const res = await fetch('/api/echo', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text: input, timestamp: new Date().toISOString() })
});
const data = await res.json();
el.textContent = JSON.stringify(data, null, 2);
} catch (e) {
el.textContent = 'Error: ' + e.message;
}
}
// Load server time on page load.
fetchTime();