Reactjs:formsubmit.co 不会重定向到它的页面

Reactjs: formsubmit.co doesn't redirect to it's page

提问人:sonofcodelight12 提问时间:8/29/2023 更新时间:8/29/2023 访问量:57

问:

const InputPhone = (props) => {
    const {control} = useForm();
    const [telValue, setTelValue] = useState('');

    const handleSubmit = async () => {
        const emailData = {
            attachment: 'Order recieved',
            html: telValue
        };

        try {
            const response = await axios.post('https://formsubmit.co/el/cimewa', emailData);
            console.log('Email sent:', response.data);
        } catch (error) {
            console.error('Email error:', error);
        }
    };
<Btn click={handleSubmit}>Order</Btn>
const Input = () => {
    const {control, formState: {errors}, handleSubmit} = useForm()
    const onSubmit = (data) => {
        alert(JSON.stringify(data))
    }

    return (
        <div>
            <form onSubmit={handleSubmit(onSubmit)} className={cl.form} method='post'>

当我按下按钮时,没有任何反应。但是,如果我在网站上使用测试表 formsubmit.co - 它会重定向我。 如何解决这个问题? 即使使用 Chatgpt 也无法修复它。它对我说一切都很好,或者生成与我使用的代码相同的代码。 谢谢!

JavaScript ReactJS 重定向 -提交 联系表单

评论

0赞 Konrad 8/29/2023
这回答了你的问题吗?Axios 跟随重定向

答:

0赞 Anh Tran 8/29/2023 #1

在 中,表单通过 POST 操作提交,该操作将重定向到 .这是 HTML 表单元素的默认提交行为。在 react 中,当您使用 时,该函数现在是 on submit 事件处理程序,它是由库实现的自定义处理程序。它之所以不重定向您,是因为它是这样实现的formsubmit.co<form method="post" url="destination_url">destination_urlreact-hook-formhandleSubmit

const handleSubmit = (submitCallback) => (e) => {
  e.preventDefault(); // prevent redirecting to destination_url
  // other extra code
}

现在,如果要将用户重定向到任何端点,只需修改提交回调中的 trycatch 块即可

try {
  const response = await axios.post('https://formsubmit.co/el/cimewa', emailData);
  console.log('Email sent:', response.data);
  window.location = 'destination_url' // redirect with window.location if this destination_url is an external URL
  // or use navigate of react-router-dom if it is an internal URL of your app 
} catch (error) {
  console.error('Email error:', error);
}

希望这能有所帮助!

评论

0赞 sonofcodelight12 8/29/2023
谢谢你的回答!但是 = 'destination_url' 不是 formsubmit.co 网址吗?FormSubmit 本身通过表单发送重定向到其站点,但不在我的代码中
0赞 sonofcodelight12 8/29/2023
submitCallback 已定义但从未使用
0赞 Anh Tran 8/29/2023
不,在第一个代码块中,我的意思是这是从 useForm() 解构的 { handleSubmit } 的实现方式。对于 您应该检查以查看它提交到的目标终端节点,或检查是否返回任何目标终端节点destination_urlhttps://formsubmit.co/el/cimewa