我正在运行一个本地网络服务器,它向ngrok服务器运行XHR请求,也从我的PC运行.
我到了XMLHttpRequest cannot load http://foo.ngrok.io/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.
似乎ngrok FAQ提到了CORS标题,但仅与基本身份验证有关 - 它没有提到如何设置标题以便我可以在开发中测试我的应用程序.
如何更改ngrok的CORS选项以允许从localhost加载请求?
Qua*_* Le 10
对我来说,除了设置服务器之外,还需要在客户端发送的每个请求上添加标头
"ngrok-skip-browser-warning": true
首先,ngrok 只是一个隧道而不是服务器,因此在 ngrok 中配置 CORS 标头根本不可能。所以任何类型的 CORS 配置都需要在服务器级别完成。
例如,如果您使用的是 nginx 服务器,则需要在 nginx conf 文件中配置标头,例如:
location / {
/*some default configuration here*/
add_header 'Access-Control-Allow-Origin' '*';
}
Run Code Online (Sandbox Code Playgroud)
通过添加此标头,您表示允许从任何地址跨源访问您的地址,因为标头的值为“*”。您还可以通过替换值来指定允许访问您的地址的特定地址。
我今天偶然发现了这个问题,并且能够通过启动ngrok并包含该-host-header标志来解决它。
ngrok http -host-header=rewrite 3000
从文档:
使用该
-host-header开关重写传入的HTTP请求。如果指定了重写,则主机头将被重写以匹配转发地址的主机名部分。
| 归档时间: |
|
| 查看次数: |
8199 次 |
| 最近记录: |