Запросить странное поведение в Nuxt.js - PullRequest
0 голосов
/ 06 ноября 2019

У меня странная проблема, может быть, она вызвана мной, лично я подозреваю код на стороне сервера, но я хочу посмотреть, есть ли что-то, чего мне не хватает, поэтому моя цель здесь не состоит в том, чтобы соответственно изменить сервер. сделать это, но я хочу понять, что происходит под капотом .. Итак, у меня есть приложение Nuxt, которое должно будет потреблять 2 API, и я решил проверить, как это сработает на ранней стадии, поэтому я попробовал несколькозапросы axios с использованием модуля @ nuxtjs / axios сначала работали нормально, но теперь то, что я вижу, действительно озадачивает меня.

Вот как выглядит запрос:

async fetchData() {
      const data = await this.$axios.$get(
        process.env.cmBaseUrl + '/api/products',
        {
          auth: {
            username: process.env.cmUsername,
            password: process.env.cmPassword
          }
        }
      )
      console.log(data)
    }

Сервериспользуя базовую авторизацию, поэтому я использую свойство auth, но это работало ранее, я также пытался вызвать из nuxtServerInit (в магазине), asyncData (в страницах), обычных методов и в макете, но безрезультатно (как ясказал, что раньше это работало и в магазине, и на страницах).

Но что действительно странно в этом случае, так это то, что в консоли, где у меня работает npm run dev, я вижу ответИсходя из этого запроса, когда я перезагружаю страницу, а ловушка created() запускает функцию fetchData(). enter image description here

Но в консоли браузера я вижу Network Error и запрос зависает на OPTIONS (хотя раньше он проходил, на стороне сервера ничего не изменилось, это не должно)не относится к CORS).

S

Поэтому моя главная проблема в том, что я не понимаю (и это моя вина, которую я знаю), почему запроспередать в среде узла, но в браузере поведение будет другим, если оно действительно связано с CORS из-за того, что запрос браузера застрял на OPTIONS и никогда не попадает в запрос GET, как получается, что он проходит узел?

1 Ответ

0 голосов
/ 06 ноября 2019

Насколько я понимаю, вы можете увидеть ответ в командной строке, но вы не можете в браузере, и это следовало ожидать. CORS происходит только в браузере. Командная строка, почтальон и тому подобное не являются браузерами, и вы не получите ошибку CORS в них. Чтобы получить ответ в своем браузере, вам необходимо установить политику CORS в своем бэкэнд-приложении.

...