不然请求每次都被拦截都不知道哪里的问题

创建于:2026年7月9日

使用 GPT-5.5 Thinking 回答 Chat01

问题

index.vue
image.png

不然请求每次都被拦截都不知道哪里的问题

思考

Clarifying API request issue and response behavior

It seems like the user’s screenshot shows a blank page, possibly due to an empty or 204 response from the backend. They might be testing the API directly in the browser, but this only checks if the backend is responding. I should suggest using Postman or curl to test more thoroughly.

Thought for 17s

回答

对,你这个思路是对的:先绕开前端页面,直接在浏览器 / Postman / curl 里访问接口,这样才能判断到底是:

  1. 前端请求封装拦截了;
  2. 后端登录拦截器拦截了;
  3. 接口本身没返回数据;
  4. 地址、端口、路径写错了。

但你截图里这个地址:

text
http://localhost:8086/applet/getRandom?mobilePhone=15290161737

现在页面是空白,不能直接说明“没问题”。你要重点看浏览器开发者工具里的 Network

按 F12,点 Network,再刷新这个地址,看这几个地方:

text
Status Code Response Preview Headers

重点判断:

1. 如果 Status 是 200,但 Response 是空的

说明后端接口确实被访问到了,但是后端方法可能没有返回内容。

例如 Spring Boot 里如果写成这样:

java
@GetMapping("/getRandom") public void getRandom(String mobilePhone) { service.getRandom(mobilePhone); }

浏览器就会空白。

应该返回数据:

java
@GetMapping("/getRandom") public Result getRandom(@RequestParam String mobilePhone) { return Result.success(service.getRandom(mobilePhone)); }

或者至少:

java
return "ok";

2. 如果 Status 是 302 / 401 / 403

那就是被登录、权限、token、拦截器拦了。

这时要去后端拦截器里放行这个接口,例如:

java
@Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(loginInterceptor) .addPathPatterns("/**") .excludePathPatterns( "/applet/getRandom", "/applet/login", "/applet/register" ); }

如果你用的是 Spring Security,就类似:

java
.requestMatchers("/applet/getRandom").permitAll()

如果是 Sa-Token,就要在路由拦截里排除:

java
SaRouter.match("/**") .notMatch("/applet/getRandom") .check(r -> StpUtil.checkLogin());

3. 如果 Status 是 404

那就是路径或端口不对。

特别注意:8086 到底是你的 后端端口,还是 前端项目端口

很多项目是:

text
前端:localhost:8086 后端:localhost:8080 / 9999 / 8090

如果 8086 是前端端口,你直接访问:

text
localhost:8086/applet/getRandom

其实访问的是前端服务器,不是后端接口,所以空白或者 404 都很正常。

你需要确认后端真正端口,比如:

text
http://localhost:8080/applet/getRandom?mobilePhone=15290161737

4. 如果 Status 是 500

说明进到后端了,但是接口内部报错。

这时看控制台后端日志,通常会有具体异常,比如:

text
NullPointerException 数据库连接失败 参数缺失 验证码服务异常

你现在最应该做的是:不要只看页面空不空,要看 Network 的 Status 和 Response

可以临时让接口返回一个固定字符串测试:

java
@GetMapping("/applet/getRandom") @ResponseBody public String getRandom(@RequestParam String mobilePhone) { System.out.println("手机号:" + mobilePhone); return "接口访问成功:" + mobilePhone; }

如果浏览器能看到:

text
接口访问成功:15290161737

说明接口没问题,问题就在前端请求封装、token 拦截或返回值解析。

如果还是被拦,那就是后端拦截器没有放行 /applet/getRandom

分享这个问答