How to get the content type from the header in a Cloudflare Worker
Posted on August 28, 2024
When working with Cloudflare Workers and handling requests, you might need to check the Content-Type header to determine how to process the request body. Here's how you can do that:
Getting the Content-Type from the Request Header
You can easily retrieve the Content-Type header from an incoming request by using the headers.get() method:
const contentType = request.headers.get("content-type");
Checking if the Content-Type is JSON
Once you have the Content-Type, you often need to verify if it indicates JSON data. You can do this by checking if the contentType string contains "application/json":
if (!contentType || !contentType.toLowerCase().includes("application/json")) {
// Handle the case where the content type is not JSON
// Possibly return an error or handle the request differently
}
Example Usage in a Cloudflare Worker
Hereβs a small example to demonstrate the usage in a Cloudflare Worker:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request));
});
async function handleRequest(request) {
const contentType = request.headers.get("content-type");
if (!contentType || !contentType.toLowerCase().includes("application/json")) {
return new Response('Unsupported content type', { status: 415 });
}
const data = await request.json();
// Process the JSON data...
return new Response('JSON data received', { status: 200 });
}
In this example, if the Content-Type is not application/json, the worker responds with a 415 Unsupported Media Type status. If the content type is JSON, it processes the data accordingly.
