POST的附加参数

时间:2017-04-03 13:51:05

标签: javascript ruby-on-rails axios

我正在尝试从我的React组件提交远程表单。后端是使用Ruby on Rails创建的。

<form
    className="message_form style__brook flex__column cen-hor cen-ver"
    id="new_message"
    acceptCharset="UTF-8"
    onSubmit={this.handleSubmit}
>
    <input name="utf8" type="hidden" value="✓"/>
    <input placeholder="Name" type="text" name="message[name]" id="message_name"/>
    <input placeholder="Mail" type="email" name="message[email]" id="message_email"/>
    <input placeholder="USD" type="number" name="message[budget]" id="message_budget"/>
    <input value="Evaluation" type="hidden" name="message[subject]" id="message_subject"/>
    <textarea placeholder="Message" name="message[body]" id="message_body"></textarea>
    <input type="submit" name="commit" value="Send" disabled="disabled" data-disable-with="Send"/>
</form>

handleSubmit 如下所示:

handleSubmit(e) {
    e.preventDefault();
    const object = getObjectFromForm();
    axios.post('/send_message', object)
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });
}

getObjectFromForm是一个函数,我可以在其中创建一个对象,以便将其添加为参数。 object看起来像这样:

object = {utf: "...", message: {"name": ..., "email": ... etc.}}

当我将object添加到a​​xios POST函数时,它会随请求一起传递,但是我的参数附加了另一个对象,其中键为email并且包含object& #39; s键和值。当我从axios方法中删除object时,没有传递任何参数。

我的问题是 - 为什么在我没有定义它时会传递第二个email对象?

1 个答案:

答案 0 :(得分:0)

这个问题可能与axios本身有关。更改代码以使用jQuery ajax方法解决了这个问题。