Прокси-сервер Vue devServer не помогает, я все еще получаю ошибку CORS

Я использую @ vue / cli 3.x, а в моем vue.config.js у меня есть следующее:

devServer: {
    proxy: {
      "/api": {
        ws: true,
        changeOrigin: true,
        target: "http://localhost:8080"
      }
    }
  }

Но я продолжаю получать ошибку CORS:

Доступ к XMLHttpRequest по адресу 'http://localhost:8080/api' from origin 'http://localhost:3000 'заблокирован политикой CORS: на запрошенном ресурсе отсутствует заголовок' Access-Control-Allow-Origin '.

Любая идея?


person Tomer    schedule 10.04.2019    source источник
comment
Я не эксперт по CORS, но если бы я мог предположить, что вам нужно включить CORS с вашего сервера и добавить Access-Control-Allow-Origin в заголовок вашего запроса. Это ваш сервер, а не ваш интерфейс Vue.   -  person James Whiteley    schedule 10.04.2019
comment
@JamesWhiteley - именно поэтому я определяю прокси, поэтому мне не нужно определять CORS на моем сервере   -  person Tomer    schedule 10.04.2019
comment
@Tomer: вы когда-нибудь находили решение этой проблемы?   -  person dotNET    schedule 18.10.2019
comment
@dotNET - вообще-то да :), видимо, у меня были какие-то конфигурации Axios, которые игнорировали прокси. моя конфигурация сервера dev выглядит так: devServer: { proxy: { "^/api": { target: url, ws: true, changeOrigin: true } } },   -  person Tomer    schedule 19.10.2019


Ответы (1)


Похоже, проблема была в конфигурациях axios.

У меня было такое определение: axios.defaults.baseURL = "http://localhost:8080/api"; Я изменил его на axios.defaults.baseURL = "api";

и это работает.

module.exports = {
    ...
    devServer: {
        proxy: {
          "^/api": {
          target: url,
          ws: true,
          changeOrigin: true
        }
     }
  },
}
person Tomer    schedule 19.10.2019
comment
В какой именно файл вы добавляете этот axios.defaults.baseURL = "api"? - person anna; 10.12.2019
comment
У меня есть файл axios.config.js, который я импортирую в свой основной файл, но на самом деле не имеет значения, как вы его назовете - person Tomer; 10.12.2019