我在尝试连接我的 Angular 应用程序时收到以下错误消息,使用 Grunt 服务器运行,使用 socketIO Flask 应用程序:
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) Flask 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,请求转到另一台服务器不是逻辑吗?
另一个奇怪的注意事项:整个事情都有效,但重新启动后停止工作......