Проблема CORS с использованием axios со Slack API

Я использую axios из браузера для взаимодействия с Slack webhook API. При отправке сообщения я стараюсь использовать

axios.post(url, data)

Браузер/axios отправляет запрос OPTION на серверную часть. В запросе OPTION содержится

access-control-request-headers:content-type

Однако ответ Slack

access-control-allow-origin:*

но нет заголовка access-control-allow-headers. Это заставляет браузер/XMLHttpRequest жаловаться

Request header field Content-Type is not allowed by Access-Control-Allow-Headers in preflight response.

Похоже, что одним из решений является указание axios не отправлять заголовок типа контента в этом случае, но я не могу понять, как это сделать.

Спасибо.


person Overclocked    schedule 08.12.2016    source источник
comment
ты понял это? какой код вы используете для получения токена? я не могу заставить себя работать   -  person texas697    schedule 04.03.2017


Ответы (1)


По сути, вам нужно удалить заголовок типа контента, что может быть достигнуто только хакерским способом:

const url = 'https://hooks.slack.com/services/{YOUR_WEBHOOK}'
const data = {
  "text": "yo some text",
}
axios.post(url, JSON.stringify(data), {
  withCredentials: false,
  transformRequest: [(data, headers) => {
    delete headers.post["Content-Type"]
    return data
  }]
})
person Ming    schedule 13.03.2018