Unity 使用 JavaScript Fetch API,它使用浏览器来处理 web 请求。这种情况下对访问跨域资源施加了安全限制。(官方说明)
也就是说,如果想要请求接口(非本地的接口,比如测试环境),必须是https开头,但是打包本地路径或者调试时,发起的请求又是跨域的。
大体流程如下
所以,知道了要干什么后就开始寻找解决方案。
本地IP支持https
https需要证书,所以只需要解决本机证书问题即可
这里用到mkcert,各平台的详细安装步骤都有,这里就不赘述。
安装好并添加到环境变量后,在想要生成证书的目录下(建议在本机的nginx服务目录下,执行命令)
mkcert 你的IP地址 127.0.0.1 localhost
看到如图即表示创建成功
nginx中再把创建好的证书添加即可使用
添加后记得再给api做代理
# === 启用 API 代理(取消注释并优化)===
location /api/ {
proxy_pass https://www.example.com/; # 注意结尾的 /
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
这样就完成了,记得重启下nginx服务
Web前端(W3Cways.com) - Web前端学习之路

