Socket.io: Ошибка CORS в последней версии

Созданный на 9 нояб. 2020  ·  7Комментарии  ·  Источник: socketio/socket.io

Старая версия socket.io работает нормально, но последняя версия показывает ошибку CORS при попытке подключения спереди назад. Я также добавил на сервер промежуточное ПО CORS, но оно не работает. Но когда я снова переключаюсь на старую версию сокета, она просто отлично работает.

image

question

Самый полезный комментарий

Привет! К сожалению, документация находится в процессе обновления до версии v3.

Я добавил здесь раздел о CORS: https://socket.io/docs/v3/handling-cors/

Не могли бы вы проверить, достаточно ли это понятно?

Все 7 Комментарий

Привет, я считаю, что это связано с тем, что документация не отражает изменений, внесенных в версии 3.0.
См. Ссылку https://socket.io/docs/migrating-from-2-x-to-3-0/ , раздел Обработка CORS.

Не буду врать, это облом. Начал играть с socket.io только сегодня, и сразу возникли препятствия. Я бы понизил версию до 2.x, но похоже, что в документации нет управления версиями.

Привет! К сожалению, документация находится в процессе обновления до версии v3.

Я добавил здесь раздел о CORS: https://socket.io/docs/v3/handling-cors/

Не могли бы вы проверить, достаточно ли это понятно?

@darrachequesne спасибо, решено!

Это может вызвать проблемы у людей с проектами glitch.me. При обновлении до v3 проекты glitch.me начинают отвечать с ошибкой, опубликованной сайфульшихабом. Однако похоже, что CORS против glitch.me и AWS TOS и будет удален. Есть ли способ запустить фреймворк v3 без включения CORS?

Я не совсем понимаю, что такое CORS и почему это проблема. Я просто пытаюсь составить план.

Привет @quindo - просто хотел уточнить, что включение CORS не противоречит TOS Glitch. Некоторые пользователи использовали определенные пакеты npm, такие как CORS -where, по злонамеренным причинам, и это противоречит нашим TOS.

для тех, кто столкнулся с проблемой: -

// server-side
const io = require("socket.io")(httpServer, {
  cors: {
    origin: "https://example.com",
    methods: ["GET", "POST"],
    allowedHeaders: ["my-custom-header"],
    credentials: true
  }
});

// client-side
const io = require("socket.io-client");
const socket = io("https://api.example.com", {
  withCredentials: true,
  extraHeaders: {
    "my-custom-header": "abcd"
  }
});

Думаю, теперь это можно закрыть. Пожалуйста, откройте повторно, если необходимо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги