@hollanditkzn

Как разрешить доступ Access-Control-Allow-Origin?

Сам проект на yii2, подключил виджет yii2-node, сейчас для проекта нужны веб сокеты, так как возрастает постоянно нагрузка и нужно еще реализовать уведомление по сокетам. Может на yii2 кто-то сталкивался с данным виджетом, поэтому выбрал я дополнительно php yii2. Когда я подключил js файл с настройками, то посыпалось ошибка

GET localhost:3001/socket.io/1/?t=1503578120929 403 (Forbidden)
XMLHttpRequest cannot load localhost:3001/socket.io/1/?t=1503578120929. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'crm' is therefore not allowed access. The response had HTTP status code 403.

Сам файл выглядит так
var socket = new YiiNodeSocket();

socket.debug(true);

socket.onConnect(function () {
    socket.room('testRoom').join(function (success, numberOfRoomSubscribers) {
        if(success){
            console.log(numberOfRoomSubscribers + ' clients in room: '+roomId);
            // do something

            // bind events
            this.on('join', function (newMembersCount) {
                // fire on client join
            });

            this.on('data', function (data) {
                // fire when server send frame into this room with 'data' event
            });
        } else {
            // numberOfRoomSubscribers - error message
            alert(numberOfRoomSubscribers);
        }
    })
});

//По идеи так должен же работать заголовок?
socket.on('request', function (req, res) {
    res.writeHead(200, {
        'Access-Control-Allow-Origin': 'http://localhost:3001/socket.io/1/?t=1503580570034'});
});

Пробовал еще в шаблоне сделать но вышла ошибка
Примерно так
file_get_contents(NodeSocketAssets::register($this);)

curl_init(NodeSocketAssets::register($this);)
header('Access-Control-Allow-Origin: http://localhost:3001/socket.io/1/?t=1503580570034')

Конечно это неправильно, но без понятие как заголовок и куда его вдеть
  • Вопрос задан
  • 1443 просмотра
Пригласить эксперта
Ответы на вопрос 1
Надо в систему установить socket. Я не помню что, у меня такая ошибка была. Я поставил через npm пакет с socket вроде и все стало ok.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы