Не удается загрузить XMLHttpRequest http://domain.com:8080/socket.io/1/?t=1416289828054 Нет заголовка "Access-Control-Allow-Origin"

Я создаю приложение, используя Licode, это приложение для видеоконференций, в котором я создал комнату, хотя при вызове XMLHttpRequest не удается установить соединение с использованием XMLHttpRequest после ошибки.

XMLHttpRequest не может загрузить http://domain.com:8080/socket.io/1/?t=1416289828054. В запрошенном ресурсе отсутствует заголовок "Access-Control-Allow-Origin". Поэтому происхождение ' http://domain.com:3001/' не разрешено. Ответ имел HTTP-код состояния 404.

Я сталкиваюсь с этой проблемой, даже если я реализовал следующий код на сервере

app.use(function(req, res, next) {
    "use strict";
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Origin', 'http://'+req.headers.host+':8000');
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, DELETE');
    res.header('Access-Control-Allow-Headers', 'origin, content-type');
    if (req.method == 'OPTIONS') {
        res.send(200);
    } else {
        next();
    }
});

Заранее спасибо за помощь.

1 ответ

Решение

Похоже, у меня была похожая проблема (все работает нормально, если я развернул ее на сервере). Прежде всего проверьте все брандмауэры и доступ к порту сокета с вашего компьютера. В моем случае проблема была с F5, смотрите здесь.

Замечания:

Поскольку F5 будет протоколом по умолчанию, идентифицированным как http, поэтому нам нужно отключить протокол http, например, когда HTTP_REQUEST { if { ([HTTP::uri] начинается_ с "/socket.io") } { HTTP::disable } }

Надеюсь, я тебе помог;)

Другие вопросы по тегам