В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin» - socket.io, но работает нормальный http - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть сервер, который загружает данные с помощью запроса get, который работает, однако сокеты вызывают событие проблемы CORS, хотя я использую тот же URL-адрес.Ниже мой код на стороне сервера

var express  = require('express');
var app      = express();
var port     = process.env.PORT || 3000;
var mongoose = require('mongoose');
var autoIncrement = require('mongoose-auto-increment');
var bodyParser   = require('body-parser');
var cors = require('cors')
var morgan = require('morgan')
var http = require('http').Server(app);
var io = require('socket.io')(http, { origins:  'http://veracity-case-tracker.s3-website.eu-west-2.amazonaws.com'});


//Log all requests to this app =====================================================================
app.use(morgan('combined'))

//JSON =============================================================================================
app.use(bodyParser.json({limit: '100mb'})); // get information from html forms
app.use(bodyParser.urlencoded({ extended: true , limit: '100mb'}));

//cors: allows external http requests ==============================================================
const corsOptions = {credentials: true, origin: ['http://localhost:4200', 'http://veracity-case-tracker.s3-website.eu-west-2.amazonaws.com']}
// const corsOptions = {origin: '*'}
app.use(cors(corsOptions))

//Connection to the database ======================================================================
var options = {
  server: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } },
  replset: { socketOptions: { keepAlive: 1, connectTimeoutMS: 30000 } }
};
var configDB = require('./config/database.js', options);
console.log(configDB);
mongoose.connect(configDB.url, {useNewUrlParser: true});
mongoose.Promise = global.Promise;
var db = mongoose.connection;

autoIncrement.initialize(db);

//Bind connection to error event (to get notification of connection errors)
db.on('error', console.error.bind(console, 'MongoDB connection error:'));
//=================================================================================================

// load our routes and pass in our app and fully configured passport ==============================
var test = require('./app/routes.js')(app,io); 

// launch =========================================================================================
http.listen(port, function(){
  console.log(`server running on ${port}`)
}); 

Я получаю две разные ошибки

Access to XMLHttpRequest at 'http://ec2-3-8-141-223.eu-west-2.compute.amazonaws.com:3000/socket.io/?EIO=3&transport=polling&t=MU33bJE' from origin 'http://veracity-case-tracker.s3-website.eu-west-2.amazonaws.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

и

GET http://ec2-3-8-141-223.eu-west-2.compute.amazonaws.com:3000/socket.io/?EIO=3&transport=polling&t=MU33r-Z 403 (Forbidden)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...