运行npm start启动服务时如何去掉访问URL中的端口号?
解决方案
错误根源
你对json-server的参数用法理解有误:
--host参数的作用是指定本地启动服务时绑定的主机IP/域名,只能传入纯主机地址(不能带https://协议头,也不能传入远端服务路径)。你将完整的远端URL传入该参数,导致json-server无法解析到正确的主机名,才会触发DNS解析错误,同时自动拼接默认的3000端口。- 你提到的
https://my-json-server.typicode.com/vbrambila2/1RM是Typicode官方提供的线上托管JSON服务,不需要你本地启动服务来占用这个地址。
对应解决办法
如果你要使用本地json-server服务,访问时不带端口号
HTTP协议默认80端口、HTTPS协议默认443端口,使用这两个端口时访问URL不会显示端口号,修改启动脚本即可:
- 普通HTTP服务,修改
package.json的启动命令:
"start": "json-server --host 127.0.0.1 --port 80 db.json"
- HTTPS服务,需要提前准备好SSL证书,启动命令修改为:
"start": "json-server --host 127.0.0.1 --port 443 --ssl --cert 你的证书路径.pem --key 你的密钥路径.pem db.json"
注意:80、443属于系统特权端口,Windows下需要以管理员身份运行终端执行启动命令,Mac/Linux下需要加
sudo前缀执行,否则会报权限错误。
如果你要直接使用Typicode的线上托管服务
完全不需要本地启动json-server,直接在你的create-react-app项目里把接口请求地址换成https://my-json-server.typicode.com/vbrambila2/1RM即可正常调用。
内容的提问来源于stack exchange,提问作者Victor
相关产品推荐
相关产品推荐

