记录一个报错:Uncaught (in promise) Error: Request failed with status code 404 at createError (createError.js:16:1) at settle (settle.js:17:1) at XMLHttpRequest.onloadend (xhr.js:66:1)
1.场景描述
当前端正常运行,后端也正常运行时。前端输入账号密码登录,无反应(指并未弹出密码或账号错误等信息),且在后端控制面板上也没任何响应。怀疑前后端并没有连通,在登录页面,右键检查,前端控制台出现如下报错:
Failed to load resource: the server responded with a status of 404 (Not Found)
createError.js:16 Uncaught (in promise)
Error: Request failed with status code 404
at createError (createError.js:16:1)
at settle (settle.js:17:1)
at XMLHttpRequest.onloadend (xhr.js:66:1)
通过搜索这个错误,得到以下解决方法,逐个测试发现无果。
2.尝试过的解决办法
随之采用postman调用接口请求发现,前端端口号是8080,而后端端口号是8888。因此登录时,没响应。根据更加具体的描述问题,得到以下方法:
如果在启动前端项目时遇到无法登录的问题,导致页面报错404可能是由于以下几个常见原因引起的:
- 前端路由配置错误:检查前端项目中的路由配置是否正确。确保登录页面的路由地址与实际访问的地址匹配。
- 后端服务不可用:前端项目在尝试登录时需要调用后端服务验证用户身份。如果后端服务不可用或者接口地址配置错误,可能导致登录失败并返回404错误。
- 跨域请求问题:如果前端项目和后端服务部署在不同的域名或端口下,可能会存在跨域请求问题。确保后端服务已经允许来自前端项目的跨域请求。
- 静态资源路径问题:检查前端项目中静态资源的路径配置,确保登录页面所需的资源可以正确加载。
- 登录接口地址配置错误:确认前端项目中登录请求发送的接口地址是否正确。如果登录请求的URL地址错误,会导致404错误。
3.最终解决方案
逐一测试,发现是跨域请求问题,前端竟然没有代理。加入代理后,能正常登录。