2017-04-03 29 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方法解決了這個問題。