Вопрос:

Перед отправкой проверьте URL запроса axios

javascript google-maps react-native axios

6743 просмотра

3 ответа

847 Репутация автора

Запросы API не выполняются, потому что сгенерированный Axios неверный URL из-за моей конфигурации. Я знаю, как должен выглядеть URL-адрес запроса, поэтому я хочу увидеть URL-адрес, сгенерированный Axios.

Я могу указать Axios на свой локальный сервер и увидеть там запросы, но я хочу отладить это на клиенте. Я хочу поиграть с конфигом и посмотреть, как меняются запросы. Есть ли способ вывести URL-адрес запроса от Axios до или после отправки?

// param format
{ address: 'Vancouver', key: GOOGLE_API_KEY }

// Geocode sample
https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&key=YOUR_API_KEY

_request = async (...args) => {
  const { outputFormat, params } = args
  const instance = axios.create({
    baseURL: `https://maps.googleapis.com`,
  })

  const response = await instance.get('/maps/api/geocode/${outputFormat}?', {
    params,
  })

  // I want to see the url generated by Axios so I can debug the issue

  console.log(response) 
}

Я в Expo, React Nativeокружающей среде.

Рабочий пример с использованием fetch:

const url = `https://maps.googleapis.com/maps/api/geocode/json?address=vancouver&key=${GOOGLE_API_KEY}`

fetch(url)
  .then((response) => response.json())
  .then((data) => {
    console.log(data)
  })
  .catch(function(error) {
    console.log(error)
  })

Используемое решение:

_request = async (obj) => {
  const { outputFormat, params } = obj

  const instance = axios.create({
    baseURL: `https://maps.googleapis.com`,
  })

  instance.interceptors.request.use(function (config) {
    console.log(config)
    return config
  }, function (error) {
    return Promise.reject(error)
  })

  const response = await instance.get(`/maps/api/geocode/${outputFormat}`, {
    params,
  })
}
Автор: Dan Источник Размещён: 11.05.2018 04:40

Ответы (3)


0 плюса

19003 Репутация автора

использование

Chrome-console> вкладка Network

Там вы найдете всю информацию о ваших запросах, отправленных с помощью javascript

Автор: Kamil Kiełczewski Размещён: 11.05.2018 04:42

4 плюса

5270 Репутация автора

Решение

Вы можете включить режим отладки и посмотреть на вкладку сети, как упомянуто в другом ответе, или вы можете перехватить axiosи console.log или сделать что угодно с запросом перед его отправкой:

axios.interceptors.request.use(function (config) {
    // Do something before request is sent
    console.log(config)
    return config;
  }, function (error) {
    // Do something with request error
    return Promise.reject(error);
  });
Автор: Matt Aft Размещён: 11.05.2018 05:15

0 плюса

10853 Репутация автора

Вы можете просто использовать axios#getUri([config])( источник ) для выполнения той же логики, что и запрос. Он объединяет конфигурации (например, заданную configи конфигурацию экземпляра), объединяет urlс baseURLи добавляет любые, paramsиспользуя paramSerializer.

Автор: Trevor Robinson Размещён: 11.08.2019 07:29
Вопросы из категории :
32x32