您遇到的错误是因为 Vite 开发服务器默认只允许 localhost 和 127.0.0.1 等本地主机访问,而您的主机名 www.example.com 不在白名单中。
解决方案
在 vite.config.js(或 vite.config.ts)中添加 server.allowedHosts 配置项,将您的主机名加入白名单。
1. 明确指定允许的主机
import { defineConfig } from 'vite';
export default defineConfig({
server: {
allowedHosts: ['www.example.com'] // 添加您的主机名
}
});2. 允许所有主机(不推荐用于生产)
如果您只是临时测试且不担心安全,可以设置为 'all':
server: {
allowedHosts: 'all'
}3. 使用正则表达式匹配
如果主机名有规律(例如动态子域名),您也可以使用正则:
allowedHosts: [/\.example\.com$/] // 允许所有 example.com 的子域名
注意事项
修改配置文件后,必须重启 Vite 开发服务器(
Ctrl+C停止后重新npm run dev)才能生效。配置中的主机名应与请求中的
Host头完全一致(无需加协议)。如果您的 Vite 版本低于 3.0,该配置可能不支持,请升级或使用
disableHostCheck: true(已废弃,不推荐)。
完整示例(Vite 3+)
// vite.config.js
import { defineConfig } from 'vite';
export default defineConfig({
server: {
allowedHosts: ['www.example.com'],
// 或者允许所有
// allowedHosts: 'all',
},
});配置后,您的请求就不会被阻止了。如果问题依旧,请检查是否在正确的位置修改了配置文件。