為您解碼網(wǎng)站建設的點點滴滴
發(fā)表日期:2018-10 文章編輯:小燈 瀏覽次數(shù):3052
更新:由于現(xiàn)在小程序IDE已經(jīng)自帶“不校驗請求域名以及TSL版本”的功能,不需要在本地配置這些復雜的環(huán)境來開發(fā)了。但本文依然可以作為在本地模擬生產(chǎn)環(huán)境的一種方法。
在11月3日微信小程序發(fā)布公測后,相信很多人已經(jīng)順利獲得資格并拿到appId。但當你把之前的項目換上剛拿到的appId后會發(fā)現(xiàn)原來的wx.request和其他請求都不能用了。
</figure>
原來,在一個設置過appId的小程序項目里,任何請求url都必須是微信公眾平臺設置過的域名。你需要登錄微信公眾平臺,在設置 > 開發(fā)設置 > 服務器配置中填寫域名。注意這里不支持localhost,127.0.0.1等,只支持像example.com這樣的真實域名,且需要SSL。
</figure>
當把域名配置好后,在小程序IDE里就能給這些域名發(fā)送請求了。然而我們并不想每次測試時都部署到服務器上,必須在本地搭建一個合適的開發(fā)環(huán)境。大致分三步:
先找到hosts文件
Mac目錄:/etc/hosts
PC目錄: C:\Windows\System32\drivers\etc\hosts
然后添加下面這行,將合法域名映射到本地,再保存
127.0.0.1 yourdomain.com
首先需要有OpenSSL。Mac是自帶的,無須再安裝;PC可以使用git-bash這類工具
這是生成自簽名證書的教程 How to create a self-signed Certificate,下面是我簡化的版本,如果懶得看英文原版可以直接往下看。
打開命令行:
1. 生成Private Key
輸入命令 openssl genrsa -des3 -out server.key 1024
2. 生成CSR (Certificate Signing Request)
輸入命令 openssl req -new -key server.key -out server.csr
然后根據(jù)提示依次輸入信息,域名不要填錯
3. 移除Passphrase
cp server.key http://server.key.org
openssl rsa -in http://server.key.org -out server.key
4.生成自簽名證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
完成了以上4步后,將server.crt和server.key移到你想要存放證書的地方。
接下來需要通過nginx來載入SSL證書 ,這樣就可以向本地服務器發(fā)送https請求了。
Mac命令行運行brew install nginx來安裝,如果不知道brew是什么可以搜下HomeBrew。PC上可以直接下載Nginx安裝包 nginx for Windows
然后修改nginx配置文件,在Mac的路徑是/usr/local/etc/nginx/nginx.conf,在PC的路徑是你的安裝路徑,里面找nginx.conf這個文件。打開后在此添加一個server,并將剛才生成的crt和key目錄放在相應的位置,如下:
server { listen 443 ssl; ssl_certificate /ssl/server.crt; # 剛生成的crt ssl_certificate_key /ssl/server.key; # 剛生成的key server_name yourdomain.com; # 你的域名 ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; location / { proxy_pass http://127.0.0.1:3000; # 本地服務器地址及端口 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-Forward-Proto https; proxy_http_version 1.1; # for websocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }}
改完保存,并運行nginx。
Mac:sudo nginx
PC:直接雙擊安裝目錄下nginx.exe
根據(jù)以上的配置,就可以在小程序IDE直接向本地域名發(fā)送https請求了。此請求會發(fā)送到 http://127.0.0.1:3000/login
wx.request({ url: 'https://yourdomain.com/login', data: {}, method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT success: function(res){ // success } })
完畢,這就是如何搭建小程序在本地模擬請求遠程https服務器的方法 。希望能給剛拿到小程序appId的開發(fā)者一些參考。
日期:2018-04 瀏覽次數(shù):6926
日期:2017-02 瀏覽次數(shù):3620
日期:2017-09 瀏覽次數(shù):3888
日期:2017-12 瀏覽次數(shù):3692
日期:2018-12 瀏覽次數(shù):5043
日期:2016-12 瀏覽次數(shù):4749
日期:2017-07 瀏覽次數(shù):13809
日期:2017-12 瀏覽次數(shù):3671
日期:2018-06 瀏覽次數(shù):4431
日期:2018-05 瀏覽次數(shù):4611
日期:2017-12 瀏覽次數(shù):3713
日期:2017-06 瀏覽次數(shù):4134
日期:2018-01 瀏覽次數(shù):4115
日期:2016-12 瀏覽次數(shù):4073
日期:2018-08 瀏覽次數(shù):4569
日期:2017-12 瀏覽次數(shù):3909
日期:2016-09 瀏覽次數(shù):6666
日期:2018-07 瀏覽次數(shù):3356
日期:2016-12 瀏覽次數(shù):3393
日期:2018-10 瀏覽次數(shù):3526
日期:2018-10 瀏覽次數(shù):3644
日期:2018-09 瀏覽次數(shù):3743
日期:2018-02 瀏覽次數(shù):3759
日期:2015-05 瀏覽次數(shù):3678
日期:2018-09 瀏覽次數(shù):3456
日期:2018-06 瀏覽次數(shù):3586
日期:2017-02 瀏覽次數(shù):4029
日期:2018-02 瀏覽次數(shù):4504
日期:2018-02 瀏覽次數(shù):4368
日期:2016-12 瀏覽次數(shù):3717
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.