CORS con Express.js y Angular2

Estoy intentando descargar un archivo PLY desde mi servidor Express.js remoto a mi aplicación Angular / Ionic. Tengo mi aplicación Ionic alojada en Amazon AWS en este momento. Aquí está el Typescript de la aplicación Ionic:

//this.currentPlyFile encompasses entire URL document.getElementById('entity').setAttribute("ply-model", "src: url(" + this.currentPlyFile + ".ply);"); 

Tengo lo siguiente en mi servidor Express.js:

 app.use(function(req, res, next) { res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,POST'); res.header('Access-Control-Allow-Headers', 'appid, X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'); if ('OPTIONS' == req.method) { res.send(200); } else { next(); } }); 

Pero me sale el siguiente error al solicitar el archivo PLY:

 XMLHttpRequest cannot load "my url here" No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'my url here' is therefore not allowed access. 

Esto es realmente frustrante porque estoy usando los encabezados proporcionados por la documentación de Express.js para permitir CORS.

Preflight -> Opciones -> https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS -> next()

 app.use(function(req, res, next) { res.header('Access-Control-Allow-Credentials', true); res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS'); res.header('Access-Control-Allow-Headers', 'appid, X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'); next(); }); app.get('/', function (req, res) { res.send('OK'); }); 

Nota: Mueve esas cosas a la parte superior de tu función de configuración.


O uso simple expreso cors :

 var express = require('express') var cors = require('cors') var app = express(); app.use(cors()); app.get('/', function (req, res) { res.send('OK'); });