微信小程序与服务器的沟通逻辑并不复杂,流程:
前3步做好以后,我在最后一步遇到了2个问题,花费了很多时间,总结出来供大家在开发小程序时参考
在小程序中调用网络请求接口从服务器获取数据:
wx.request({
url: 'https://www.xxx.com/test.php',
...
})
这段代码非常简单,小程序API中也给出了示例代码,但执行后报错:
request:fail invalid url
文档没有此类错误的说明,网上也没有资料,试了很多方法都不行
很费解,找不到原因,后来在一次无意的尝试中解决了
方法:把 url 的单引号改为 `(与 ~ 同键)
...
url: `https://www.xxx.com/test.php`,
...
我这个 url 字符串中并没有引用变量,不明白为什么单引号不行,而需要使用 `,如果你知道原因,拜托发个消息指点我一下
上个问题解决后,又出现新的问题:
TLS版本必须大于等于1.2
这个问题是小程序文档中明确指出的,这说明自己服务器的TLS版本过低,需要升级
先查看一下自己的 TLS 版本是多少:
浏览器中访问自己的 https URL,浏览器地址栏前面有个绿色小锁的图标,点击后可以查看安全信息,其中就有 TLS 的版本,我的为 TLS 1.0
1)升级 OpenSSL
查看服务器 OpenSSL版本
openssl version -a
为 0.0.98
,这个版本还不支持 TLS 1.2,要升级到 1.0.2
2)重新编译 Nginx
之前安装 Nginx 时 OpenSSL 是旧版,OpenSSL 升级后需要重新编译 Nginx
这两步做完后,浏览器中再次访问,点击绿色锁查看信息,TLS 版本变为了 1.2,在小程序客户端中也可以正常得到请求结果
这里介绍的是大体思路,具体操作步骤之后再整理出来发布,例如: