44 lines
1.3 KiB
JavaScript
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(); |