xinli/检查二维码URL的方法.md

188 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 检查二维码URL的方法
## 方法一:在二维码管理页面查看(推荐)
### 步骤:
1. 登录管理系统
2. 进入"二维码管理"页面
3. 找到要检查的二维码记录
4. 点击"查看二维码"按钮
5. 在二维码预览对话框中,可以看到二维码图片
6. **查看浏览器控制台**
-`F12` 打开开发者工具
- 切换到 `Console`(控制台)标签
- 在控制台中输入以下代码查看二维码URL
```javascript
// 查看当前页面的二维码数据
console.log('二维码列表数据:', document.querySelectorAll('.el-table__body tr'));
```
### 或者直接查看网络请求:
1. 打开浏览器开发者工具F12
2. 切换到 `Network`(网络)标签
3. 刷新二维码管理页面
4. 找到获取二维码列表的请求(通常是 `/psychology/qrcode/list`
5. 查看响应数据,找到 `qrcodeUrl` 字段
6. 或者找到获取二维码图片的请求(通常是 `/psychology/qrcode/image/{qrcodeId}`
7. 查看响应数据中的URL
## 方法二:解码二维码查看内容
### 使用在线工具:
1. 访问在线二维码解码工具,例如:
- https://www.qrcode-monkey.com/qr-code-decoder/
- https://zxing.org/w/decode.jspx
2. 上传二维码图片或输入二维码图片URL
3. 查看解码后的文本内容这就是二维码的URL
### 使用手机扫码:
1. 使用手机扫描二维码
2. 查看手机浏览器地址栏中的URL
3. 检查URL是否正确
- ✅ 正确格式:`http://192.168.1.183/psychology/qrcode/scan/xxx`
- ❌ 错误格式:`http://192.168.1.183:30081//psychology/qrcode/scan/xxx`
## 方法三:检查后端日志
### 步骤:
1. 查看后端控制台日志
2. 找到二维码生成相关的日志
3. 查找包含 `buildServerAddress``buildQrcodeContent` 的日志
4. 查看实际生成的URL
### 添加调试日志(可选):
如果需要更详细的日志,可以在代码中添加:
```java
// 在 PsyQrcodeController.java 的 enrichQrcodeWithBase64() 方法中
String serverAddress = buildServerAddress();
log.info("构建的服务器地址: {}", serverAddress);
// 在 PsyQrcodeServiceImpl.java 的 buildQrcodeContent() 方法中
String content = buildQrcodeContent(qrcode, serverAddress);
log.info("生成的二维码URL: {}", content);
```
## 方法四直接测试URL访问
### 步骤:
1. 从二维码管理页面获取二维码编码(`qrcodeCode`
2. 手动构建URL`http://192.168.1.183/psychology/qrcode/scan/{qrcodeCode}`
3. 在浏览器中直接访问该URL
4. 检查是否能正常访问:
- ✅ 能访问URL正确
- ❌ 不能访问检查URL格式和网络连接
## 方法五:使用浏览器开发者工具检查
### 步骤:
1. 打开二维码管理页面
2.`F12` 打开开发者工具
3. 切换到 `Network`(网络)标签
4. 点击"查看二维码"按钮
5. 在Network标签中找到获取二维码图片的请求
6. 查看请求URL和响应数据
7. 检查响应中的 `qrcodeUrl` 字段
### 或者使用控制台:
在浏览器控制台中输入:
```javascript
// 获取二维码图片的Base64数据
const qrcodeImage = document.querySelector('img[src^="data:image"]');
if (qrcodeImage) {
console.log('二维码图片URL:', qrcodeImage.src);
// Base64数据很长可以截取前100个字符查看
console.log('二维码URL前缀:', qrcodeImage.src.substring(0, 100));
}
```
## 检查URL正确性的标准
### ✅ 正确的URL格式
- `http://192.168.1.183/psychology/qrcode/scan/xxx`
- `http://localhost/psychology/qrcode/scan/xxx`
- 不包含 `:30081` 端口号
- 不包含双斜杠 `//`
- 路径格式正确:`/psychology/qrcode/scan/{qrcodeCode}`
### ❌ 错误的URL格式
- `http://192.168.1.183:30081/psychology/qrcode/scan/xxx`包含30081端口
- `http://192.168.1.183//psychology/qrcode/scan/xxx`(包含双斜杠)
- `http://192.168.1.183:30081//psychology/qrcode/scan/xxx`(包含端口和双斜杠)
## 快速检查脚本
在浏览器控制台中运行以下脚本可以快速检查所有二维码的URL
```javascript
// 检查二维码列表中的URL
fetch('/dev-api/psychology/qrcode/list', {
headers: {
'Authorization': 'Bearer ' + localStorage.getItem('token')
}
})
.then(res => res.json())
.then(data => {
if (data.code === 200 && data.rows) {
console.log('二维码列表:');
data.rows.forEach((qrcode, index) => {
console.log(`${index + 1}. 编码: ${qrcode.qrcodeCode}`);
console.log(` 类型: ${qrcode.qrcodeType}`);
// 如果有qrcodeUrl检查URL格式
if (qrcode.qrcodeUrl) {
const urlMatch = qrcode.qrcodeUrl.match(/http[s]?:\/\/[^"']+/);
if (urlMatch) {
const url = urlMatch[0];
console.log(` URL: ${url}`);
// 检查是否有问题
if (url.includes(':30081')) {
console.warn(' ⚠️ 警告URL包含30081端口');
}
if (url.includes('//')) {
console.warn(' ⚠️ 警告URL包含双斜杠');
}
}
}
});
}
});
```
## 常见问题排查
### 问题1URL包含30081端口
**原因**`buildServerAddress()` 方法没有正确识别后端端口
**解决**:检查后端日志,确认 `serverPort` 是否为30081
### 问题2URL包含双斜杠
**原因**:路径拼接时产生了双斜杠
**解决**:检查 `contextPath` 是否为 `/`,如果是则应该被忽略
### 问题3URL无法访问
**原因**
- URL格式错误
- 网络连接问题
- 前端服务未运行
**解决**
- 检查URL格式
- 确认前端服务运行在80端口
- 确认手机和电脑在同一局域网内
## 推荐检查流程
1. **生成二维码后立即检查**
- 在二维码管理页面查看二维码
- 使用浏览器开发者工具查看网络请求
- 检查URL格式是否正确
2. **测试扫码功能**
- 使用手机扫描二维码
- 检查是否能正常访问
- 查看手机浏览器地址栏中的URL
3. **如果发现问题**
- 检查后端日志
- 重新生成二维码
- 确认修复后再次测试