CORS блокирует загрузку файлов в Expressjs - PullRequest
0 голосов
/ 28 марта 2020

Я попытался добавить заголовки вручную и использовал express cors.

Я прочитал это: https://expressjs.com/en/resources/middleware/cors.html

следовал инструкции, и все это хорошо, каждый запрос [GET, PUT, POST, DELETE, PATCH], который я посылаю, проходит, но. если я попытался загрузить файлы на сервер, CORS заблокировал меня.

сообщение:

Доступ к XMLHttpRequest по адресу https://api.example.xyz/api/post из источника 'https://app.example.xyz 'заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

, но блокировка CORS пропала, если я удалил все, что обрабатывает перемещение файлы из тела запроса.

я пробовал multr, express -fileupload, и перемещение изображения вручную с помощью узла fs, cors всегда блокирует меня. пожалуйста помоги.

как загрузить файл с express? это мой сервер неисправен? работает локально.

1 Ответ

0 голосов
/ 28 марта 2020

Вероятно, это связано с тем, что есть два вида запросов COR: «простые запросы» и «предварительно проверенные» запросы. Вы не показываете свой код (который вы должны), но ваши симптомы звучат так, как будто вы обрабатываете простых запросов просто отлично, но ваша загрузка вызывает предварительно обработанный запрос и у вас нет кода подтверждения CORS для предварительно проверенных запросов.

Предварительно обработанный запрос отправляет запрос OPTIONS до того, как он отправляет фактический запрос, и запрашивает разрешение, а ваш сервер должен правильно ответить на запрос OPTIONS. с заголовками CORS, чтобы позволить браузеру отправлять предварительно отправленный запрос.

Чтобы убедиться в том, что происходит, откройте отладчик Chrome и перейдите на вкладку сети и посмотрите, что именно отправляет браузер. на ваш сервер во время этого запроса.

Если этого объяснения недостаточно для того, чтобы выяснить, как решить вашу проблему, то, пожалуйста, покажите снимок экрана EXACT на вкладке сети попытки браузера отправить этот запрос И покажите соответствующие части вашего сервера. код, как ваше промежуточное ПО COR, так и целевой обработчик запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...