MERN项目Redux Toolkit认证请求服务器遇net::ERR_NAME_NOT_RESOLVED错误求助
解决MERN项目中请求服务器出现net::ERR_NAME_NOT_RESOLVED的问题
核心问题分析
net::ERR_NAME_NOT_RESOLVED 表示浏览器无法解析目标请求地址,本质是请求的URL格式无效或服务器地址不可访问。从你提供的代码来看,最直接的错误是请求URL存在格式问题。
步骤1:修复请求URL的格式错误
你的axios.post请求中,模板字符串里的URL被换行和多余空格拆分,导致实际请求地址包含无效的换行符:
// 错误写法:URL包含换行和空格 const response= await axios.post(`http://176.232.58.54 :5000/register`,userData,config)
修正方式:使用你已定义的backendUrl进行拼接,避免硬编码时的格式错误:
import { createAsyncThunk } from "@reduxjs/toolkit"; import axios from 'axios'; const backendUrl = 'http://176.232.58.54:5000'; export const registerUser = createAsyncThunk('register', async(userData)=>{ try{ const config = { headers: { 'Content-Type': 'application/json', }, } // 修正:用变量拼接URL,保证格式正确 const response= await axios.post(`${backendUrl}/register`, userData, config) return response.data; } catch(error){ console.error(error.message) // 建议抛出错误,让Redux Toolkit处理rejected状态 throw error; } })
步骤2:验证服务器的可访问性
如果修复URL后仍报错,需要确认服务器本身是否可被访问:
- 检查服务器端口:服务器代码中使用
process.env.PORT || 5000,启动时查看控制台日志,确认实际运行的端口是5000还是环境变量中配置的其他端口,前端的backendUrl需与之一致。 - 测试服务器连通性:在浏览器或终端中直接访问
http://176.232.58.54:5000/register(GET请求可能返回405 Method Not Allowed,但只要不出现解析错误,就说明服务器地址是有效的)。 - 检查端口开放情况:如果服务器部署在远程主机,需确认主机的防火墙/安全组已开放5000端口,允许外部访问。
步骤3:其他排查点
- 如果是本地开发场景,服务器运行在本地的话,应使用
http://localhost:5000或http://127.0.0.1:5000作为backendUrl,而非公网IP。 - 确认服务器已正常启动,且数据库连接未导致服务器崩溃(可查看服务器控制台日志排查)。
内容的提问来源于stack exchange,提问作者Ali Baran
相关产品推荐
相关产品推荐

