Content-Type header that Beacon API use, depend on type of instance you pass to sendBeacon second parameter.
To send application/x-www-form-urlencoded, use UrlSearchParams instance.
var params = new URLSearchParams({
key : 'apples',
values : amountOfApples
});
navigator.sendBeacon(anUrl, params);
To send multipart/form-data header, use FormData instance.
var params = new FormData();
params.append('key', 'apples');
params.append('value', amountOfApples);
navigator.sendBeacon(anUrl, params);
To send application/json header, use Blob and set its type.
var data = {
key : 'apples',
values : amountOfApples
};
var params = new Blob(
[JSON.stringify(data)],
{type : 'application/json'}
);
navigator.sendBeacon(anUrl, params);