2013-10-06 3 views
0

У меня есть простой чат-сервер (node.js/express/socket.io), к которому я обращаюсь от клиента в другом домене. Я уже установил исход, чтобы разрешить все, что сработало. Однако после 30 секунд бездействия от клиента возникает ошибка: «XMLHttpRequest не может загрузить [url]. Происхождение не разрешено Access-Control-Allow-Origin». В этот момент я больше не могу отправлять сообщения, если не обновить страницу. Я позволяю происхождение как с io.set('origins', '*:*'); иПерекрестный домен socket.io разрывается через 30 секунд

app.all('*', function(req, res, next) { 
    res.header("Access-Control-Allow-Origin", "*"); 
    res.header("Access-Control-Allow-Headers", "X-Requested-With"); 
    next(); 
});. 

Я пробовал почти все, что я могу думать (выводя из строя сердцебиений, ловя ошибку и переподключения на клиенте, используя io.server.removeListener('request', io.server.listeners('request')[0]);). Я знаю, что это проблема между доменами, потому что у меня нет проблем, когда я запускаю ее локально. Есть идеи?

+0

Я использую websockets. – Jazzo

ответ

0

У меня возникла аналогичная проблема, когда я работал над проектом, использующим API Twitter-Streaming в систему чата. Проблема вы столкнулись может быть связано с Same Origin Policy (подробнее here)

Также решение я нашел наиболее Apt был междоменному запрос Gif, понятие, которое вы найдете используется в Google Аналитический скрипт, Полное описание концепции можно найти here.

Надеюсь, вы сочтете это полезным. Это, безусловно, помогло мне.

+0

Не устанавливает ли источник доступа, который должен разрешать проблемы с одинаковой политикой происхождения? Кроме того, он не объясняет, почему он работает изначально, а затем останавливается через определенное время. – Jazzo

Смежные вопросы