Задать вопрос
@VlLZAR

Не могу разобраться с websocket. Что я делаю не так?

import { io } from 'socket.io-client';

const socket = io('wss://stream.binance.com:9443/stream?streams=ethusdt@ticker');

export const subscribeToCryptoStream = () => {
  socket.on('connect', () => {
    console.log('Connected to Binance WebSocket');
  });

  socket.on('message', (e) => {
    const message = JSON.parse(e.data);
    console.log('Полученные данные:', message);
  });

  socket.on('disconnect', () => {
    console.log('Disconnected from WebSocket');
  });
};

export const unsubscribeFromCryptoStream = () => {
  socket.disconnect();
};

Пытаюсь отправить запрос на получение курса криптовалют, но на меня орет CORS и выдает ошибку (Access to XMLHttpRequest at 'https://stream.binance.com:9443/socket.io/?streams...' from origin 'localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource). Только недавно начал изучать вебсокеты и не понимаю что не так.

UPD: подсказали что нужен свой бэк, но с собственного бэка все равно не получается получить данные и выдается ошибка Access to XMLHttpRequest at 'localhost:3000/socket.io/?EIO=4&transport=polling&...' from origin 'localhost:5173' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
  • Вопрос задан
  • 238 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
На этот вопрос тут уже отвечали неоднократно. RTFM CORS.
Если коротко, то для того, чтобы страница, открытая с вашего сервера, (localhost:5173), обратилась на страницу другого сервера (stream.binance.com:9443), этот другой сервер должен дать специальное разрешение в CORS-заголовках ответа. Если другой сервер не принадлежит вам, то единственным способом обхода является обращение через свой бэкенд, так как контроль CORS - встроенная функция браузера.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Это значит, что доступ к данному ресурсу разрешен только с определённого домена или доменов.
HTTP -> Reference -> Заголовки HTTP -> Access-Control-Allow-Origin: https://developer.mozilla.org/ru/docs/Web/HTTP/Ref...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы