为了绕过浏览器警告,您需要在请求头中包含带有任何值的ngrok-skip-browser-warning
请求头。
要包含的内容的确切语法取决于您正在进行的API调用类型。
例如,对于JavaScript中的fetch
请求,必须包含以下内容才能绕过警告:
fetch(url, {
method: "get",
headers: new Headers({
"ngrok-skip-browser-warning": "69420",
}),
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((err) => console.log(err));
TL;DR; 对于那些仍然想知道如何自动化解决方法的人,我创建了一个docker镜像,它在本地运行一个简单的HTTPS代理,并为每个请求添加ngrok-skip-browser-warning
头。
运行:
$ docker run -d --rm \
-p 8443:443 \
-p 8080:80 \
-e NGROK_HOST=https://your-ngrok-domain.ngrok.io \
igops/ngrok-skip-browser-warning:latest
https://ngrok.localhost.direct:8443
作为您的API根目录。GET https://your-ngrok-domain.ngrok.io/api/v1/whatever
。现在您只需调用GET https://ngrok.localhost.direct:8443/api/v1/whatever
,并获得无警告页面的响应!
*.localhost.direct
是指向127.0.0.1
的公共DNS的通配符记录。
阅读更多
server {
server_name localhost ngrok.localhost.direct;
listen 80;
listen 443 ssl;
ssl_certificate /etc/nginx/certs/localhost.direct.crt;
ssl_certificate_key /etc/nginx/certs/localhost.direct.key;
location / {
# regular forwarding headers
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host your-ngrok-domain.ngrok.io;
# this line does the actual trick
proxy_set_header ngrok-skip-browser-warning 1;
# forward!
proxy_pass https://your-ngrok-domain.ngrok.io;
}
}