@Scorpiored88

Почему не проходят post запросы, но запросы GET проходят?

Уже наверно надоелый вопрос, но я в тупике.

Есть удаленный тестовый сервер на debian, на нем настроен NGINX который проксирует нужные запросы на локальные node express сервис сервера (не доккер).
Один сервер на localhost:3001 для работы з БД, тут все нормально, все REST запросы проходят (POST, GET….).
И второй на localhost:3002 для загрузки изображений. Тут то у меня проблема с CORS
Ошибка в браузере (Локальная страница на VUE(npm run serve) с запросами axios)

Access to XMLHttpRequest at 'https://myTestServer/uploadImg' from origin 'localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

В express уже вроде как все перепробовал:

app.use(function (req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
    next();
});


И задействовал модуль https://www.npmjs.com/package/cors

app.use(cors())

Не помогает… :(

Интересно что на сервисе localhost:3001 с теми же настройками cors проблем нету.

Также в логах NGIX вижу при попытке загрузить изображения через браузер идет первый запрос OPTIONS

"OPTIONS /uploadImg HTTP/1.1" 301 169 "http://localhost:8080/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36" "-"


В чем может быть проблема ?

P.S. тесты с POSTMAN проходят успешно, а также GET(если просто открыть страницу в браузере)
  • Вопрос задан
  • 2304 просмотра
Решения вопроса 1
@Scorpiored88 Автор вопроса
Нашел проблему.
С клиента я отправлял запросы на
'https://myTestServer/uploadImg
так получаю ошибку
Но если отправить запрос со слешом в конце
https://mytestserver/uploadImg/
так работает
Хотя на сервере
app.post('/uploadImg', async (req, res) => {

Возможно потому что в nginx
location /uploadImg/
хотя странно, так как первий сервис с запросами без слеша в конце работает… проавда там файлы не принимаются
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vadimMalovaniy
В Access-Control-Allow-Headers попробуй добавить Redirect.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы