Skip to content

Instantly share code, notes, and snippets.

@nilcolor
Created February 8, 2011 15:28
Show Gist options
  • Save nilcolor/816580 to your computer and use it in GitHub Desktop.
Save nilcolor/816580 to your computer and use it in GitHub Desktop.
Node.js cross-origin POST. You should response for OPTIONS request first. Something like this.
if (req.method === 'OPTIONS') {
console.log('!OPTIONS');
var headers = {};
// IE8 does not allow domains to be specified, just the *
// headers["Access-Control-Allow-Origin"] = req.headers.origin;
headers["Access-Control-Allow-Origin"] = "*";
headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS";
headers["Access-Control-Allow-Credentials"] = false;
headers["Access-Control-Max-Age"] = '86400'; // 24 hours
headers["Access-Control-Allow-Headers"] = "X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept";
res.writeHead(200, headers);
res.end();
} else {
//...other requests
}
@mazzespazze
Copy link

From a noob. Where should you put such a code?

@Asaf-S
Copy link

Asaf-S commented Oct 3, 2019

Thanks!

From a noob. Where should you put such a code?

const express = require('express');
express()
.options('', (req, res) => {
console.log('OPTIONS request!');
var headers = {};
headers["Access-Control-Allow-Origin"] = "
";
headers["Access-Control-Allow-Methods"] = "POST, GET, PUT, DELETE, OPTIONS";
headers["Access-Control-Allow-Credentials"] = false;
headers["Access-Control-Max-Age"] = '86400'; // 24 hours
headers["Access-Control-Allow-Headers"] = "X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept, Authorization, cache-control";
res.writeHead(200, headers);
res.end();
})

@semtagg
Copy link

semtagg commented Mar 31, 2022

+1

@bobbyconnolly
Copy link

9 years later, this post saved me ❤

@ZHAOYANG291
Copy link

my hero!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment