微信小程序使用wx.request獲取服務器接口數據有幾個要求:
1、必須到小程序管理後臺將服務器的域名設置爲合法域名:
小程序後臺=》開發=》開發設置=》服務器域名;
2、設置的服務器域名必須支持https,也就是使用 TLS/SSL 協議的http;
要使域名支持https訪問,先要獲取一個SSL證書,獲取SSL證書有兩種方法:
1)直接去購買一個,BD一搜一大把賣證書的,此處不表;
2)自己生成一個,這裏主要介紹自己生成的證書,自己生成的證書,由於是自己給自己簽名,訪問時會顯示不安全,但用於我們開發調試完全沒問題,等開發完成了,再去買一個安全的。
先下一個openssl;安裝完成後運行OpenSSL.exe進入控制檯模式,輸入:
req -newkey rsa:2048 -nodes -keyout root.key -x509 -days 3650 -out cert.crt -subj "/C=CN/ST=HN/L=CS/O=ABK/OU=dev/CN=你的域名.com.cn/emailAddress=你的郵箱@qq.com"
說明:rsa:2048 表示使用2048位加密; -keyout root.key 表示輸出key存放到root.key文件裏面;-days 3650表示有效期爲3650天;-out cert.crt 表示 輸出證書文件爲cert.crt;/C=CN/ST=HN/L=CS/O=ABK/OU=dev/CN=你的域名/emailAddress=你的郵箱,這裏等號後面分別表示國家,省,城市,公司,部門,域名,郵箱;
然後會生成兩個文件root.key和cert.crt,將這兩個文件拷到你的域名對應網站根目錄;
進入IIS,選中要操作的網站,點擊“綁定”;
點擊“添加”,在“類型”裏面選https,在SSL證書右邊點“選擇”,在彈出的對話框中選中證書;
3、此時,如果你使用的是自己生成的簽名證書,訪問接口時依然會報錯:“對應的服務器證書無效。控制檯輸入 showRequestInfo() 可以獲取更詳細信息。”,這是因爲你自己的簽名不可靠。但是,我們只是用來調試,不需要這麼安全。可以在微信開發者工具中關閉合法簽名校驗;
在微信開發者工具右上角的詳情=》本地設置中,鉤選:不校驗合法域名;
好了,此時可以使用request獲取接口數據了。如果還不行,自行檢查服務器或代碼有什麼其它問題。