Я хочу соединиться с socket.io с бэкэндом, использующим Express.
бэкэнд используется как API для других функций.Итак, я использую некоторое промежуточное программное обеспечение для добавления заголовков к выражению (вы можете видеть это в коде).
проблема в том, что socketio на стороне клиента выдает следующую ошибку:
Значениезаголовка «Access-Control-Allow-Origin» в ответе не должно быть подстановочным знаком «*», если режим учетных данных запроса «include».
, но мне нужно оставить «*», чтобы разрешитьвсе пользователи из любого места, где можно получить доступ к моему API.
var express = require('express'); var server = express();
var app = require('http').Server(server);
var io = require('socket.io')(app);
io.set( "Access-Control-Allow-Origin", "*" );
require('./controllers/watsonIoT.controller').startWatson(io);
server.use(function(request, response, next) { // configuration of headers
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers", "Content-Type, x-auth");
response.header("Access-Control-Allow-Methods", "GET,POST,DELETE,PUT")
next();
})
.use('/gui', express.static('views'))
.use(bodyParser.json())
.use('/api', mainRouter)
.get('*', (req, res) => res.redirect('/'))
.listen(PORT,function(){
console.log("Starting ... port: "+ PORT);
// startWatson();
});