Я создаю инструмент тестирования для SocketIO, который позволит пользователю подключаться к любому бэкэнду SocketIO.
Когда я пытаюсь подключиться к другому домену, я получаю ошибку CORS, как и ожидалось.
Поскольку в этом случае я не контролирую серверную часть, стандартное решение добавления заголовков не имеет значения.
Есть ли способ преодолеть это на лицевой стороне, будь то через сам SocketIO или просто JS?
Это основной код, который я использую для подключения, когда монтируется мой компонент React:
connect = (address) => {
console.info('connecting');
this.setState(()=>({
connectionStatus:'connecting'
}))
if (socket) {
socket.disconnect();
}
socket = window.socket = io(address);
socket.on('connect', () => {
console.info('connected!')
this.setState({
connectionStatus: 'connected',
})
});
Добавил некоторый код, хотя я не уверен, как это поможет: D
Вы использовали заголовки?
Если сервер не разрешает запросы из разных источников, вы не сможете получить к нему доступ из другого домена. Это должен разрешить сервер, это не то, что вы можете настроить на клиенте. При этом бывают случаи, когда вы не можете получить доступ к серверу с поддержкой CORS с клиента по ряду причин, надеюсь, если это ваша проблема, кто-то может указать вам правильное направление.
Значит, нет никакого способа обойти это?
Не то чтобы я в курсе. Если вы найдете его, то это будет брешь в безопасности.
Во многих случаях вы можете сделать запрос через прокси-сервер CORS, который вставит необходимые заголовки ответа в ответ, который получит браузер. См. раздел Как использовать прокси-сервер CORS, чтобы обойти проблемы «Нет заголовка Access-Control-Allow-Origin» ответа на stackoverflow.com/questions/43871637/….



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


можешь показать свой код?