• We value your experience with Plesk during 2024
    Plesk strives to perform even better in 2025. To help us improve further, please answer a few questions about your experience with Plesk Obsidian 2024.
    Please take this short survey:

    https://pt-research.typeform.com/to/AmZvSXkx
  • The Horde webmail has been deprecated. Its complete removal is scheduled for April 2025. For details and recommended actions, see the Feature and Deprecation Plan.
  • We’re working on enhancing the Monitoring feature in Plesk, and we could really use your expertise! If you’re open to sharing your experiences with server and website monitoring or providing feedback, we’d love to have a one-hour online meeting with you.

Resolved Request body not available using Node.js, Express on Plesk (Cors)

Kroptokin

Regular Pleskian
Server operating system version
AlmaLinux 8.9 (Midnight Oncilla)
Plesk version and microupdate number
Plesk Obsidian Version 18.0.57 Update #5, last updated on Dec 23, 2023 02:30 AM
I am using fetch to send a request body to a node app. If the client (browser script using fetch) is on the same domain as the node app all works fine.

However, i am having a problem when sending a POST request across domain. The request is handled fine by node/express: that is it gets it and can send a response. But the request body is empty. So I can't get the data. The data is sent by the browser. But something is removing it. Either Apache or Node/Express.

I am using the Express module cors. I have set it up wide open and I think correctly. I am also using a module body-parser as I found a post which suggested that might fix it. But it doesn't. I have turned off nginx on the server (though it didn't work when I tried the other way and used nginx with Apache turned off). There are no headers in the Apache configuration because the cors module adds them and if they are there you get duplicates.

The workaround is that I can do a GET cross-domain (which also confirms that my basic Cors setup is correct I think) and try to send the data urlencoded appended to the requested url - but this is not very convenient.

Has anyone got this to work? I can find at least one unanswered post and one where someone from Plesk says it is nothing to do with Plesk. (That's fine but doesn't solve my problem!). I am just wondering if anyone has ever got this to work?

Thanks a lot.
 
SOLVED!

Ok. This was rather tricky but (for me at least) it is indeed not a Plesk problem. If anyone runs into this thread - the answer is provided by user Dang Khoa Dinh on this thread: Express.js req.body undefined

In my case - with Nginx turned off globally and no additional Cors configuration for Apache.
 
Back
Top