# 重定向导致微信小程序只在正式版出现接口报错 code 600002, url not in domain list



最近在将自研小程序从测试版发布到正式版时，遇到了一个非常奇怪的坑：接口在本地开发和测试环境中一切正常，但一旦发布到正式版，就出现了 **code `600002`** 的报错，提示 **URL not in domain list**。

## 问题现象

1. 接口本地测试完全正常。
2. 开发版和测试版的小程序也可以正常调用该接口。
3. 微信小程序后台服务器域名配置正常。
4. 正式版小程序调用同一接口时，直接报错：

```json
{
    "errCode": 600002,
    "errMsg": "url not in domain list"
}
```

## 问题定位

1. 后端服务日志显示请求有记录，但没有报错信息。
2. Nginx 日志中发现状态码 **307 Temporary Redirect**。
3. 查看 Git 提交记录时发现，报错接口被修改过，在原有的 API 路径后意外多加了一个 `/`，如：`/api` ➡️ `/api/`

## 问题分析

我的nginx上游服务器是FastAPI，FastAPI 默认严格区分 `/api` 与 `/api/`，但是FastAPI收到其中一个未定义的路由时，会自动返回 **307 Temporary Redirect**，引导客户端访问另一个路径。

然而微信小程序似乎不允许重定向，而且只在正式版报错，就产生了这个难以快速定位的bug。

## 解决方法

- 规范前端请求，去掉斜杠

- 增加后端健壮性，同时支持支持带/不带斜杠（不推荐）


---

> 作者: [fupcode](https://github.com/fupcode)  
> URL: https://fupcode.com/blog/posts/devops/problem-wx307/  

