Ax ios получение политики CORS: заголовок «Access-Control-Allow-Origin» отсутствует в запрашиваемом ресурсе только при отправке файлов - PullRequest
0 голосов
/ 27 марта 2020

сообщение об ошибке

Access to XMLHttpRequest at 'https://api.example.xyz/api/post' from origin 'https://app.example.xyz' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Это происходит только тогда, когда в отправленной форме есть файл

я уже использовал cors на сервере

app.options("*", cors());
app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Methods", "*");
  res.header("Access-Control-Allow-Headers", "*");
  next();
});

и установите ax ios вот так

axios.defaults.headers.common["X-Requested-With"] = "XMLHttpRequest";
axios.defaults.headers.common["Access-Control-Allow-Origin"] = "*";

и вот как отправили форму с редуксной отправкой


  async function submit(e) {
    e.preventDefault();
    var form = new FormData(e.target); 
    await props
      .dispatch(insert(form)) <--the insert function
      .then(data => setNotification({ type: "success", ...data }))
      .catch(error =>
        setNotification({ type: "error", ...error.response.data })
      );
  }

функция вставки

export function insert(data) {
  return dispatch => {
    return new Promise((resolve, reject) => {
      HTTP.post("/page", data)
        .then(data => {
          return resolve(data.data);
        })
        .catch(data => {
          return reject(data);
        });
    });
  };
}
...