CORS-detector / index.html
x1001000's picture
Improve CORS error handling
111e247
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width" />
<title>My static Space</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="card">
<h1>HTTP GET Client</h1>
<div class="input-group">
<input type="url" id="urlInput" placeholder="Enter URL (e.g., https://api.example.com/data)" />
<button onclick="makeRequest()">GET</button>
</div>
<div id="response" class="response-container"></div>
</div>
<script>
async function makeRequest() {
const url = document.getElementById('urlInput').value;
const responseDiv = document.getElementById('response');
if (!url) {
responseDiv.innerHTML = '<div class="error">Please enter a URL</div>';
return;
}
try {
responseDiv.innerHTML = '<div class="loading">Loading...</div>';
const response = await fetch(url);
const data = await response.text();
responseDiv.innerHTML = `
<div class="status">Status: ${response.status} ${response.statusText}</div>
<div class="headers">
<h3>Headers:</h3>
<pre>${JSON.stringify(Object.fromEntries(response.headers), null, 2)}</pre>
</div>
<div class="body">
<h3>Response Body:</h3>
<pre>${data}</pre>
</div>
`;
} catch (error) {
let errorMessage = error.message;
if (error.message.includes('Failed to fetch') || error.name === 'TypeError') {
errorMessage = `CORS Error: ${error.message}. The server may not allow cross-origin requests from this domain.`;
}
responseDiv.innerHTML = `<div class="error">Error: ${errorMessage}</div>`;
}
}
</script>
</body>
</html>