解决MERN Stack用户注册表单404错误

解决mern stack用户注册表单404错误

前端React代码中,fetch 请求使用了相对路径 /signup。这意味着浏览器会将请求发送到当前页面所在的域名和端口下的 /signup 路径。如果前端和后端运行在不同的端口或域名下,或者后端路由配置不正确,就会导致404错误。

要解决这个问题,需要确保前端 fetch 请求使用的URL是完整的、指向后端API的URL。

解决方案:使用完整的URL

在React组件的 handleSubmit 函数中,修改 fetch 请求的URL,使用完整的URL,包括协议、主机名和端口号。例如,如果你的后端服务器运行在 localhost:4000 上,则应将URL修改为 http://localhost:4000/signup。

const handleSubmit = (event) => {  event.preventDefault();  // Create a FormData object to send the form data  const formData = new FormData();  formData.append('name', name);  formData.append('password', password);  formData.append('image', image);  formData.append('address', address);  // Send the form data to the backend  fetch('http://localhost:4000/signup', { // 修改为完整的URL    method: 'POST',    body: formData,  })    .then((response) => {      if (response.ok) {        console.log('Form submitted successfully');        // Reset the form fields        setName('');        setPassword('');        setImage(null);        setAddress('');      } else {        console.error('Error submitting form');      }    })    .catch((error) => {      console.error('Network error:', error);    });};

注意事项:

端口号: 确保URL中的端口号与后端服务器监听的端口号一致。环境变量: 在实际项目中,建议将后端API的URL存储在环境变量中,方便配置和部署。部署环境: 在生产环境中,URL应该指向部署后的域名或IP地址。

CORS问题

除了URL问题,跨域资源共享(CORS)也可能导致请求失败。如果前端和后端运行在不同的域名下,浏览器会阻止跨域请求。

表单大师AI 表单大师AI

一款基于自然语言处理技术的智能在线表单创建工具,可以帮助用户快速、高效地生成各类专业表单。

表单大师AI 74 查看详情 表单大师AI

解决方案:

后端配置: 在Express.js后端使用 cors 中间件允许跨域请求。

const express = require("express");const app = express();const cors = require('cors');app.use(cors()); // 启用CORS

总结

解决MERN Stack用户注册表单404错误的关键在于确保前端 fetch 请求使用了正确的URL,指向后端API的注册路由。同时,需要注意CORS问题,确保后端允许跨域请求。通过检查URL和CORS配置,可以有效地解决此类问题。

更多关于CORS的信息,可以参考:How to solve CORS request did not succeed in express.js when react client try fetch data?

以上就是解决MERN Stack用户注册表单404错误的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/229636.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月3日 20:33:11
下一篇 2025年11月3日 20:37:58

相关推荐

发表回复

登录后才能评论
关注微信