Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.3K
Views
Receiving net::ERR_EMPTY_RESPONSE with Nodejs Post Request

I'm trying to make a post request in my Node app; however, I am getting the following error.

OPTIONS http://localhost:27017/postDebate net::ERR_EMPTY_RESPONSE

How to resolve this?

Here is my route:

var express = require('express');
var router = express.Router();
var Debate = require('../models/debate');
var mdb = require('mongodb').MongoClient,
  ObjectId = require('mongodb').ObjectID,
  assert = require('assert');
var api_version = '1';
var url = 'mongodb://localhost:27017/debate';

router.post('/'+api_version+'/postDebate', function(req, res, next) {
  var debate = new Debate(req.body);
  console.log(debate, "here is the debate");
  debate.save(function(err) {
    if (err) throw err;
    console.log('Debate saved successfully!');
  });
  res.json(debate);
});

module.exports = router;

And since I am invoking this route after onclick calling a function in my ejs file, here is my javascript file.

function postDebate() {
  var topic = document.getElementById('topic').value;
  var tags = document.getElementById('tags').value;
  var argument = document.getElementById('argument').value;

  var debateObject = {
    "topic": topic,
    "tags": tags,
    "argument": argument
  };
  console.log(topic, tags, argument);

  $.ajax({
    type: 'POST',
    data: JSON.stringify(debateObject),
    contentType: "application/json",
        //contentType: "application/x-www-form-urlencoded",
        dataType:'json',
        url: 'http://localhost:27017/post',                      
        success: function(data) {
          console.log(JSON.stringify(data), "This is the debateObject");                               
        },
        error: function(error) {
          console.log(error);
        }
      });
}

How do I resolve this error? What is the problem here?

OPTIONS http://localhost:27017/postDebate net::ERR_EMPTY_RESPONSE
about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

You need to add CORS headers on app level and you must to run res.end() on OPTIONS request

Then check your URL, you registered your module with some name so your URL should looks like /ROUTER_MODULE_NAME/1/postDebate but from your frontend you calling to http://localhost:27017/post

Here is minimal example which I checked and it works fine for me:

var express = require('express');
var router = express.Router();
var app = express();

app.use(function(req, res, next) {
    console.log('request', req.url, req.body, req.method);
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, x-token");
    if(req.method === 'OPTIONS') {
        res.end();
    }
    else {
        next();
    }
});

router.get('/hello', function(req, res, next) {
    res.end('hello world')
});

app.use('/router', router)

app.listen(8081)

//try in browser `$.get('http://127.0.0.1:8081/router/hello')`
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!