微信小程序连接云服务器的完整步骤如下,我将从基础配置到代码实现详细说明:
一、前期准备
1. 服务器端准备
- 购买云服务器(阿里云、腾讯云、华为云等)
- 域名备案(必须已完成ICP备案)
- 配置SSL证书(必须使用HTTPS,可申请免费证书)
- 部署后端服务(Node.js、Java、Python等)
- 开放安全组端口(通常443/HTTPS)
2. 小程序端配置
// 在小程序管理后台配置
1. 开发设置 → 服务器域名 → request合法域名
2. 添加你的云服务器HTTPS域名(如:https://api.yourdomain.com)
二、核心连接步骤
步骤1:服务器API开发
// 示例:Node.js Express服务器
const express = require('express');
const app = express();
// 允许跨域(小程序需要)
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', '*');
next();
});
// 示例API接口
app.get('/api/user', (req, res) => {
res.json({ code: 0, data: { name: '张三' } });
});
app.listen(443, () => {
console.log('服务器运行在443端口');
});
步骤2:小程序网络请求
// 小程序端请求代码
Page({
getDataFromServer() {
wx.request({
url: 'https://api.yourdomain.com/api/user',
method: 'GET',
header: {
'content-type': 'application/json'
},
success: (res) => {
console.log('请求成功:', res.data);
},
fail: (err) => {
console.error('请求失败:', err);
}
});
}
})
步骤3:封装请求工具(推荐)
// utils/request.js
const baseURL = 'https://api.yourdomain.com';
const request = (options) => {
return new Promise((resolve, reject) => {
wx.request({
url: baseURL + options.url,
method: options.method || 'GET',
data: options.data || {},
header: {
'content-type': 'application/json',
'Authorization': wx.getStorageSync('token') // 添加token
},
success: (res) => {
if (res.statusCode === 200) {
resolve(res.data);
} else {
reject(res.data);
}
},
fail: reject
});
});
};
// 使用示例
request({ url: '/api/user' }).then(data => {
console.log(data);
});
三、安全与优化配置
1. 域名配置验证
开发环境:可在开发工具中勾选"不校验合法域名"
正式环境:必须在小程序后台配置request合法域名
2. 网络安全配置
// 服务器端添加安全验证
app.use('/api/*', (req, res, next) => {
// 验证请求来源(可选)
const referer = req.headers.referer;
if (referer && !referer.includes('servicewechat.com')) {
return res.status(403).json({ error: '违规请求' });
}
next();
});
3. HTTPS强制配置
# Nginx配置示例
server {
listen 443 ssl;
server_name api.yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# 强制HTTPS
if ($scheme != "https") {
return 301 https://$host$request_uri;
}
}
四、常见问题解决
问题1:域名未备案或未配置
错误:request:fail url not in domain list
解决:在小程序后台添加合法域名
问题2:证书问题
错误:request:fail ssl hand shake error
解决:检查SSL证书是否有效且为受信任CA签发
问题3:跨域问题
虽然小程序不严格受CORS限制,但服务器仍需正确配置
五、完整流程总结
- 购买服务器 → 备案域名 → 安装SSL证书
- 部署后端API → 配置安全组/防火墙
- 小程序后台配置request合法域名
- 小程序代码通过wx.request发起请求
- 服务器响应并返回JSON数据
- 处理数据并更新小程序界面
六、最佳实践建议
- 使用环境变量区分开发/生产环境
- 添加请求拦截器统一处理token和错误
- 实现自动重试机制应对网络不稳定
- 服务器添加限流防止恶意请求
- 重要接口添加签名验证
需要更详细的某个步骤(如SSL证书安装、具体后端框架实现等),我可以进一步展开说明。
CLOUD技术笔记