Ошибка запроса из-за CORS Access-Control-Origin - PullRequest
0 голосов
/ 24 апреля 2020

Итак, у меня есть приложение, которое я делаю запрос PATCH на мой API. Когда я делаю свой запрос, он завершается с

Access to fetch at 'https://localhost:3001/wallets/freshtest@test.com' from origin 'https://localhost:3002' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.

Однако, если я выполняю запрос GET, эта проблема не возникает. Вот оба запроса

Рабочая выборка

const promisofData = fetch(url).then(r=>r.json()).then(data => {
    return data[0].balance;
});

Не рабочая выборка

fetch(url, {
       method: 'PATCH',
       mode: 'cors',
       headers: {'Content-Type': 'application/json'},
       body: JSON.stringify(iMoney)
});

В моем API у меня есть удостоверился, что любой источник должен быть разрешен

app.use((req, res, next)=>{
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers","*");
    if(req.method === 'OPTIONS'){
        res.header('Access-Control-Allow-Methods', 'POST, GET, PATCH');
        return res.status(200).json({});
    }
    next();
});

Я пробовал несколько разных режимов в неработающей выборке, но я пытаюсь понять, почему запрос GET будет работать, но запрос PATCH не будет выполнен?

Обновление правки

Итак, я попробовал тот же запрос и использовал Ax ios вместо Fetch, чтобы выполнить мой запрос, и он работал отлично. При работе с fetch я имел в виду https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch и в нем указываются различные доступные опции. Если я предоставлю 1 вариант запроса, требуются ли остальные?

...