Flask-socketio - не удалось установить заголовок ответа «Access-Control-Allow-Origin» - PullRequest
0 голосов
/ 01 июня 2018

Я написал этот простой код колбы:

from flask import Flask
from flask_socketio import SocketIO, send

app = Flask(__name__)
app.config['SECRET_KEY'] = 'mysecret'

socketio = SocketIO(app)


@socketio.on('message')
def handle_message(msg):
    print 'Message:' + msg
    send(msg, broadcast=True)


if __name__ == '__main__':
    socketio.run(app)

Когда я вижу анализ сети Chrome, я вижу значение «Access-Control-Allow-Origin» как null.

Согласно документации Flask-socketio: (См. API Reference @ http://flask -socketio.readthedocs.io / en / latest / )

Parameters:
...
cors_allowed_origins – List of origins that are allowed to connect to this server. All origins are allowed by default.

Другое найденное мной предложениепри поиске используется flask-CORS:

app.config['SECRET_KEY'] = 'mysecret'
cors = CORS(app)

socketio = SocketIO(app)

Я получаю тот же результат.

Как можно разрешить перекрестные запросы с помощью колбы-сокета?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 18 августа 2019

Ниже решите это для меня.Взаимодействие из приложения Angular.

socketio = SocketIO(app, cors_allowed_origins="*")
0 голосов
/ 01 июня 2018

Кросс-источник включен по умолчанию на Flask-SocketIO.Я предполагаю, что то, как вы тестируете это, ошибочно.Во время работы вашего примера приложения я могу отправить запрос к основной конечной точке Socket.IO и получить в ответ заголовок Access-Control-Allow-Origin:

~ $ http http://localhost:5000/socket.io/
HTTP/1.1 200 OK
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: *
Connection: keep-alive
Content-Length: 119
Content-Type: application/octet-stream
Date: Fri, 01 Jun 2018 17:10:01 GMT
Set-Cookie: io=dd8d67788df54510830fea64bc82b1fd



+-----------------------------------------+
| NOTE: binary data not shown in terminal |
+-----------------------------------------+
...