如何关联React Native(Expo)与Nest JS?CORS网络错误排查
解决NestJS与React Native的CORS跨域问题
你当前的默认enableCors()配置可能无法适配React Native的请求特性,以下是针对性的解决方案:
1. 细化CORS配置参数
将默认的app.enableCors()替换为带具体配置的版本,覆盖React Native请求所需的权限:
async function bootstrap() { const app = await NestFactory.create(AppModule); app.enableCors({ origin: '*', // 开发阶段临时允许所有来源,生产环境请指定你的RN应用域名/IP credentials: true, // 允许携带Cookie或认证凭证 allowedHeaders: ['Content-Type', 'Authorization', 'Accept'], methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], // 覆盖常用HTTP方法 preflightContinue: false, optionsSuccessStatus: 204, }); await app.listen(3001); } bootstrap();
2. 排查其他潜在问题
- 确认请求地址正确性:React Native模拟器无法直接使用
localhost访问本地NestJS服务,需替换为电脑的局域网IP(比如http://192.168.x.x:3001) - 检查axios请求配置:确保请求头没有携带未被允许的字段,比如自定义的非标准头需要加入
allowedHeaders列表 - iOS ATS配置(可选):如果是iOS模拟器,若请求涉及HTTP协议,需在
info.plist中添加ATS例外配置(但你能正常请求谷歌,此问题概率较低)
内容的提问来源于stack exchange,提问作者Louay Badri
相关产品推荐
相关产品推荐

