2017-04-03 30 views
-1

我想从我的React组件提交远程表单。后端是使用Ruby on Rails制作的。加入POST的参数

<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到爱可信POST功能,它就会与请求通过,但不存在附加到我的参数,另一个对象,关键是email,它包含object的按键和值。当我从axios方法中删除object时,没有参数传递。

我的问题是 - 为什么第二个email对象在我没有定义的时候通过?

+0

显示一个完整的代码'getObjectFromForm' – MysterX

+0

请发布您的getObjectFromForm方法逻辑,以便我们可以看到它在做什么,并发布实际的json数据转储的响应 - 例如复制/粘贴'console.log(getObjectFromForm());'的输出。 –

+0

对象值是我写给你的。即使当我用一些手写对象补充对象时,只包含我需要的键和值,仍然有另一个对象附加为“email” – Ancinek

回答

0

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