Rechecking your OP I see the mistake.
You attempted to Post a form. Which has some fun on how the data keys go iirc.
The example and documention recommends JSON so try this:
const data = await fetch('https://api.twitch.tv/helix/eventsub/subscriptions', {
method: 'POST',
headers: {
'Client-ID': clientID,
'Authorization': 'Bearer ' + token,
'Content-Type': 'application/json',
},
body: JSON.stringify({
'type': 'channel.follow',
'version': '1',
'condition': {
'broadcaster_user_id': '227329520',
},
'transport': {
'method': 'webhook',
'callback': 'https://myngrokurl/webhooks/callback',
'secret': rString
}
})
});
And that should get you going