Я получаю следующее сообщение об ошибке при попытке слишком подключить угловое приложение, запустите с сервером Grunt, с приложением socketIO Колбы:Acces-Control-Allow-Origin с Grunt сервером и Колбой SocketIO-приложением
XMLHttpRequest cannot load http://localhost:8080/socket.io/1/?t=1381872821951.
Origin http://localhost:9000 is not allowed by Access-Control-Allow-Origin.
Я уже немного разбираюсь в этой проблеме, и я знаю, что это происходит из-за того, что клиент (angularjs) делает запрос на другой сервер, с которого пришел ответ.
Какое из этих серверов является проблемой?
1) Сервер Grunt? Я уже пробовал это: https://stackoverflow.com/a/17256255/1819058 Какой должна решить эту проблему, если она пришла от сервера Grunt
2) Настой SocketIO сервера:
app = Flask(__name__)
@app.route("/socket.io/<path:path>")
def run_socketio(path):
socketio_manage(request.environ, {'': ChatNamespace})
if __name__ == '__main__':
print 'Listening on http://localhost:8080'
app.debug = True
import os
from werkzeug.wsgi import SharedDataMiddleware
app = SharedDataMiddleware(app, {
'/': os.path.join(os.path.dirname(__file__), 'static')
})
from socketio.server import SocketIOServer
SocketIOServer(('', 8080), app,
namespace="socket.io", policy_server=False).serve_forever()
Это, как я подключиться к серверу:
var socket = ioSocket || io.connect('http://localhost:8080');
Может ли кто-нибудь помочь мне с этим? Разве это не логично, что запросы переходят на другой сервер, если вы используете websockets?
Другая странная нота: Все это работает, но перестал работать после перезагрузки ...
Я попытался это. Я украсил маршрут @ app.route («/ socket.io/») с этим декоратором, но он не сработал. Означает ли это, что это приложение для флэшей, которое не позволяет CORS, а не сервер Grunt? –
arnoutaertgeerts
Grunt пытается соединиться с флеш-приложением, поэтому проблема в том, что приложение флэша не позволяет CORS –