Websockets ++ настройки CORS - PullRequest
       21

Websockets ++ настройки CORS

0 голосов
/ 18 декабря 2018

Я пытаюсь запустить какое-то взаимодействие через websocket между проектом C ++ с использованием websocket ++ с автономным asio и клиентской стороной, созданной в угловом режиме в настоящее время в браузере.

Кажется, у меня проблема с рукопожатием,а именно некоторые настройки CORS.

На стороне клиента я получаю это: Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:3001/socket.io/?EIO=3&transport=polling&t=MV3LZsv. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

И в то же время я получаю это в боковой консоли cpp: [2018-12-18 15:09:39] [error] Handshake ended with HTTP error: 426 [2018-12-18 15:09:39] [fail] WebSocket Connection [::ffff:127.0.0.1]:57762 v0 "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" /socket.io/?EIO=3&transport=polling&t=MV1ffJg 426 websocketpp:28 Upgrade required

Ну, я обнаружил эту проблему в репозитории GitHub: https://github.com/zaphoyd/websocketpp/issues/679

Поэтому я попытался добавить обработчик проверки, но он не работает, он даже не вызывается, поэтому Access-Control-Allow-Origin даже не добавляется взапрос.

Есть идеи?

// Редактировать: обновлено сообщение об ошибке на стороне клиента

1 Ответ

0 голосов
/ 26 января 2019

Взгляните на https://github.com/andrei-markeev/ddpserver/blob/master/examples/websocketpp.cpp#L44

Короче, попробуйте с помощью connection_ptr добавить вас 'Access-Control-Allow-Origin'.

websocket_server::connection_ptr con = wsServer->get_con_from_hdl(hdl);
con->append_header("access-control-allow-origin", "*");
...