Formspree 400 BAD REQUEST

时间:2018-03-02 15:22:14

标签: http-status-code-400

  

控制台错误 - POST http://formspree.io/myemail@myemail.com 400(BAD   请求)发送@ jquery.min.js:4

我无法使用Formspree提交表单。错误显示:

  

无法加载资源:服务器响应状态为400   (不良请求)

我尝试将网址更改为https://formspree.io/myemail@myemail.com。我在过去10天内一直面临这个问题,之前没有任何问题。这是在Google Chrome 64版上测试的。有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

不幸的是,现在为Formspree上的Gold用户保留了AJAX提交。

要解决此问题,您可以创建一个<form>元素并以编程方式提交,如下所示:

function submitForm(name, email, message){
    var destinationEmail = "youremail@domain.com";
    var form = document.createElement('form');
    form.setAttribute("action", "https://formspree.io/" + destinationEmail)
    form.setAttribute("method", "POST")

    // Subject for your email
    var field = document.createElement("input");
    field.setAttribute("type", "hidden");
    field.setAttribute("name", "_subject");
    field.setAttribute("value", "Contact form submitted");
    form.appendChild(field);

    // Contact email address        
    field = document.createElement("input");
    field.setAttribute("type", "hidden");
    field.setAttribute("name", "email");
    field.setAttribute("value", email);
    form.appendChild(field);

    // Your user's name
    field = document.createElement("input");              
    field.setAttribute("type", "hidden");
    field.setAttribute("name", "name");
    field.setAttribute("value", name);
    form.appendChild(field);

    // The text message
    field = document.createElement("input");              
    field.setAttribute("type", "hidden");
    field.setAttribute("name", "message");
    field.setAttribute("value", message);
    form.appendChild(field);

    document.body.appendChild(form);    
    form.submit();
}

submitForm("Your user's name", "user@domain.com", "Here is my message");

缺点是您的电子邮件地址将显示在地址栏上,浏览器会在继续之前显示验证码。

但是,我发现在多次提交后,Rest API实际上开始正常工作。

希望有所帮助