Как победить CORS?
Вложений: 2
Здравствуйте!
Выполняю учебное задание, в котором есть локальный сервер(файлы в папке server), который должен отдавать список товаров. Пытаюсь клиентом(файлы в папке client) получить их от сервера, который в свою очередь тянет их откуда-то еще, и возникает ошибка, связанная с CORS. Как можно изменить в модели клиента вызов товаров с локального сервера(запускается по npm start), чтобы эта ошибка не возникала? |
Цитата:
Ваш сервер должен посылать клиенту заголовок Access-Control-Allow-Origin: '*' |
borus, либо так как сказали выше, но если это только для разработки, то правильнее использовать devserver proxy, который будет просто проксировать локальные запросы вида /api?foo=bar на ваш сервер без всякого CORS. Настройка зависит от того, что вы за devserver используете, но в большинстве серверов для разработки такая функция есть.
Ну и почитайте про CORS: что это такое, почему возникло, как с ним работать. Без этого в современном вебе никуда. |
borus, этого должно хватить:
// npm install cors const cors = require('cors') app.use(cors())https://expressjs.com/en/resources/middleware/cors.html https://www.npmjs.com/package/cors |
Цитата:
Это надо вставить в index.js сервера? В какой строке? |
borus, строку:
const cors = require('cors')желательно вставить в том же месте, где объявляются остальные константы с "require". По семантике желательно вставить строку после: const express = require('express'); Строку: app.use(cors())желательно вставить сразу после: const app = express(); И обязательно перез этим выполните в консоле команду "npm install cors" для установки пакета "cors". Так как в вашем коде у вас уже присутствуют другие пакеты, для вас это не должно стать проблемой. Обратите внимание, что в моем коде не используются точки с запятой в конце строк. И хотя в данном случае это ни на что не повлияет, в вашем коде их тоже стоит добавить для поддержания единого стиля. |
Часовой пояс GMT +3, время: 19:38. |