Ax ios - Нет 'Access-Control-Allow-Origin' - CORS - PullRequest
0 голосов
/ 06 августа 2020

Я создаю приложение javascript, которое использует внешний API. Для получения данных я использую ax ios, но всякий раз, когда я делаю запрос, он возвращает ошибку CORS - «Нет набора заголовков Access-Control-Allow-Origin». Теперь временное решение - добавить прокси третьей части перед URL-адресом API (например, https://cors-anywhere.herokuapp.com), и он работает нормально, но я действительно не хочу зависеть от третьего part и хотел бы обрабатывать его в моем собственном приложении.

Я перепробовал почти все, но до сих пор не могу заставить его работать. Я использовал перехватчики ответов ax ios, чтобы прикрепить к ответу требуемые заголовки, но это просто не работает.

axios.interceptors.response.use(res => {
  res.headers['Access-Control-Allow-Origin'] = '*';
  res.headers['Access-Control-Allow-Credentials'] = 'true'
  res.headers['Access-Control-Request-Method'] = 'POST'
  return res;
})

мой сервер. js файл выглядит примерно так

const serveStatic = require('serve-static')
const path = require('path')
const cors = require('cors');

const app = express()

app.use('/', serveStatic(path.join(__dirname, '/dist')))
app.use(cors());

const port = process.env.PORT || 8080
app.listen(port, () => console.log("starting on port 8080"));

Есть решения по этой проблеме?

1 Ответ

0 голосов
/ 06 августа 2020

Попробуйте инвертировать две строчки:

app.use(cors());
app.use('/', serveStatic(path.join(__dirname, '/dist')));

Подскажите, работает ли

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

axios.interceptors.response.use(... 
...