axios на клиенте не получает данные с удаленного сервера
Вел разработку приложения клиент-сервер с локальным сервером. Когда сервер запущен локально, все работает. А с удаленным сервером какие-то проблемы возникают.
Клиент успешно отправляет запрос, сервер его успешно получает, успешно обрабатывает и отправляет ответ, а на клиенте на этапе приема -- ошибка (На клиенте используется Axios, на сервере express)
На всякий случай прикрепляю пример запроса на клиенте и обработчика на сервере, но с ними должно быть все в порядке, т.к., повторюсь, с локальным сервером все работает
пример запроса с клиента:
axios.get(url, { params: params })
.then(response => {
setLoading(false);
if (!response) return null;
return response.data;
}).catch(err => {
setLoading(false);
setError(err.message);
console.log("В ответе от сервера ошибка!!!: ", err);
return null;
})
Пример обработчика на сервере:
router.get("/cars", async (req, res) => {
connection.query(
"SELECT make.name as mark, model.name as model, body.name as body \n" +
"from make \n" +
"INNER JOIN model on make.id_mrk=model.id_mrk \n" +
"INNER JOIN body on model.id_mdl=body.id_mdl",
(err, response) => {
if (err) {
console.log("Error of mysql query: " + "Запрос на получение списка моделей, марок и кузовов");
return;
}
const result = {};
response.forEach(row => {
if (!result[row.mark]) result[row.mark] = {};
if (!result[row.mark][row.model]) result[row.mark][row.model] = [];
result[row.mark][row.model].push(row.body);
});
console.log(`Отправляю данные о машинах`);
res.status(200).json(result);
}
);
});
на сервере никаких ошибок, запрос к БД проходит успешно;
ошибка на клиенте выглядит так:
Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:83)
Спасибо!
Ответы (1 шт):
Я был слегка невнимателен и не заметил уведомление об ошибке CORS. Проблема была вызвана тем, что клиент запускался локально и отправлял их скрипта запросы на удаленный сервер, для решения достаточно было реализовать получения клиентской части посредством запроса на сервер (тогда и запросы из этой клиентской части на этот же сервер не блокируются)