предисловие
Прежде всего, необходимо уточнить, что данная статья не является заглавной партией. Здесь нужно добиться эффектаИсходя из того, что фоновому персоналу не нужно менять базовый адрес сетевого запроса на внешнем интерфейсе, интерфейсный код используется для облегчения локальной отладки..
Мне жаль, что то, что я сказал здесь, может быть немного искажено, вы поймете, когда я дам вам краткое объяснение.
Мы знаем, что фронтенд имеет такой базовый адрес, когда подключается к бэкенду, и через него проходят все вызовы интерфейса бэкенда:
let _baseURL = 'http://api.xxx.develop.com'
const service = axios.create({ // 创建 axios 实例
baseURL: _baseURL, // api base_url
timeout: 120000 // 请求超时时间
})
Теперь предположим, что есть такой сценарий:
Back-end и front-end совместно разрабатывают определенное требование. Front-end детская обувь более усердная (хуо) и трудовая (шао).Разработана страница и развернут код в среде разработки компании.http://xxx.develop.com
начальство.
В это время младший брат на заднем планеA
Чтобы найти свой интерфейс стыковки, вы запустите локальный интерфейсный проект, а затем настроите_baseURL
поменять на коллегуA
изIP
адрес (при условии10.0.17.231:1001
);
но коллегиB
Я также хочу связаться с вами после разработки, что вы будете делать?
«Подожди, Сяо Чжан сейчас стыкуется со мной»
«Почему бы тебе не использовать его самомуpostman
Протестировать интерфейс? "
Для юга хорошо, передок детской обуви хочется, чтобы дождь и роса равномерно промокли, что делать...
На данный момент, насколько вы хотели бы, чтобы вы могли рассматривать свой интерфейсный проект как статическую страницу и позволить младшему брату в фоновом режиме просто настроить свою собственную?IP
Адрес может просматривать интерфейсную страницу и выполнять локальную отладку без необходимости внешнего интерфейса для запуска службы.
В этой статье предлагается простое решение для вышеуказанной ситуации.Если есть лучшее решение, оставьте сообщение в области комментариев и учитесь вместе 😊
Реализовать идеи
- с помощью браузера
Local Storage
фонIP
где хранится адрес; - внешний интерфейссетевой запросСделайте некоторые адаптации на уровне кода и оцените
Local Storage
Есть ли указанныйIP
Адрес, если он есть, используется.
Адаптация внешнего сетевого запроса
Здесь я используюaxios
В качестве примера для объяснения в вашем коде может быть что-то вроде этого:
// request.js
let _baseURL = 'http://api.xxx.develop.com'
const service = axios.create({ // 创建 axios 实例
baseURL: _baseURL, // api base_url
timeout: 120000, // 请求超时时间
headers: { 'Content-Type': 'application/json' }
})
...
(request.js
конфигурация сетевого запроса в проекте)
нам просто нужноbaseURL
Просто сделайте простую адаптацию,
определитьsetBaseURL
Функция:
function setBaseURL () {
const webHost = localStorage.getItem('webHost') // 获取浏览器本地存储中Key为webHost那一项的值
if (location.origin === 'http://xxx.develop.com' && webHost) { // 判断当前的环境以及是否存在webHost
_baseURL = 'http://' + webHost // 将_baseURL重新赋值
}
return _baseURL
}
а затем используйте его:
// request.js
let _baseURL = 'http://api.xxx.develop.com'
function setBaseURL () {...}
const service = axios.create({ // 创建 axios 实例
baseURL: setBaseURL(), // api base_url
timeout: 120000, // 请求超时时间
headers: { 'Content-Type': 'application/json' }
})
Этот проект генерируетaxios
например, он определит вашу текущую среду (при условии, что вы хотите сделать это только в среде разработки), а затем определитLocalStorage
Есть ли что-то, что нужно указатьIP
адрес, тем самым возвращая новый_baseURL
.
После того, как этот уровень адаптации выполнен, передняя часть можетbuild
Затем положите его на сервер, и маленький брат на заднем плане может сделать некоторую конфигурацию, когда он хочет его использовать.
ПримечаниездесьwebHost
Строки не фиксируются, вы также можете написатьapiHost
,host
Дождитесь полей, пока вы согласны с фоном.
Как использовать фон
Младшему брату в фоновом режиме нужно только настроить его в браузере при использовании.
Предположим, что фронтенд-проект находится вhttp://xxx.develop.com
начальство
- Открыть
http://xxx.develop.com
, и откройте консоль (window
горячая клавишаF12
,Mac
горячая клавишаoption+command+i
); - оказаться
Application
внизLocal Storage
; - расширять
Local Storage
, найти элемент текущего URL; - добавить справа
Key
дляwebHost
,Value
локально для бэкэндаIP
Пара ключей и значений адресов (включая номера портов). - обновите страницу
Как показано ниже:
Примечание
-
webHost
написание; - заполнен
IP
Адрес должен включать номер порта - После настройки обновите следующую страницу
- Эта конфигурация предназначена только для вашего локального браузера.
- Не забудьте очистить эту конфигурацию, если вы не хотите выполнять локальную отладку, иначе она всегда будет существовать в вашем браузере.
- Если вы хотите удалить эту конфигурацию, вам нужно только
Value
Установите его в пустую строку или удалите этот элемент, как показано ниже.
Проверьте, успешна ли конфигурация
Чтобы определить, успешна ли конфигурация, вам нужно только проверить отправленный сетевой запрос.Request URL
Был ли он изменен может быть.
Или открыть консоль, затем найденNetWork
Тот, отфильтровать, чтобы видеть толькоXHR
сетевой запрос
Предположим, что исходный адрес, который должен быть запрошен,http://api.xxx.develop.com
Адрес для запроса после настройки10.0.17.231:1001
Проверьте, является ли сетевой запрос, инициированный в это время, адресом, который вы настроили.
послесловие
Это решение было предоставлено фронтенд-старшим братом бывшей компании. Я просто написал его в виде статьи, чтобы поделиться с вами. Я также хотел бы поблагодарить старшего брата-фронтендщика за помощь мне в моей карьере.
Ребята, которые находят это полезным, могут нажать 👍, чтобы поддержать 😊
Знания бесценны и поддерживают оригинальность
больше рекомендаций: