• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • We are looking for U.S.-based freelancer or agency working with SEO or WordPress for a quick 30-min interviews to gather feedback on XOVI, a successful German SEO tool we’re looking to launch in the U.S.
    If you qualify and participate, you’ll receive a $30 Amazon gift card as a thank-you. Please apply here. Thanks for helping shape a better SEO product for agencies!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

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