Postman 设置代理后为什么还是连不上本地开发接口?
我本地用 Vue 3 + Vite 起了个服务,端口是 5173,后端 API 在另一个本地服务(比如 http://localhost:8080/api)。我想用 Postman 测试这个 API,但公司网络必须走代理才能外网访问。我在 Postman 的 Settings → Proxy 里开了 Global Proxy,填了公司的 HTTP 代理地址和端口,可每次发请求都超时,根本连不上。
奇怪的是,浏览器里直接访问 http://localhost:8080/api 是通的,说明后端没问题。是不是 Postman 的代理设置对 localhost 不生效?或者我漏了什么配置?下面是我前端调用接口的简化代码:
<script setup>
import { onMounted } from 'vue';
onMounted(async () => {
const res = await fetch('http://localhost:8080/api/test');
console.log(await res.json());
});
</script>
<template>
<div>测试页面</div>
</template>
Postman 开了全局代理之后,所有请求都会被发往公司代理服务器,然后由代理服务器去访问目标地址。但代理服务器它访问不了你本机的 localhost:8080,所以超时是必然的。
浏览器能访问是因为浏览器没有走公司的全局代理,它直接连的本地。
解决思路很简单:测试本地接口时别让 Postman 走代理。
具体操作:
在 Postman 的 Settings → Proxy 里,把那个 Global Proxy 开关关掉,或者把 "Enable Proxy" 的勾去掉。测试完本地服务,需要访问外网时再打开。
如果你觉得来回切换麻烦,可以看看 Proxy 设置里有没有排除本地地址的选项(有些版本支持),把 localhost 和 127.0.0.1 加进去。
还有个野路子:把 localhost 改成你的局域网 IP(比如 192.168.x.x:8080),有些代理会放行局域网内网地址,不过这得看公司代理的具体配置。
总之就是一句话,代理是给外网用的,你测本地服务的时候关掉就行。