2017-07-18 41 views
0

我無法成功將值推送到作爲rest api上對象一部分的數組。我正在關注這個Patching arrays,但我無法讓它工作。嘗試在其他api上修補數組

const xhr = new XMLHttpRequest(); 

const formData = { "op": "add", "path": "/residents", "value": this.state.person.id }; 
console.log(formData) 

xhr.open('PATCH', 'http://localhost:3008/planets/' + this.state.person.planetID); 

xhr.setRequestHeader('Content-type', 'application/json'); 

xhr.responseType = 'json'; 

xhr.addEventListener('load',() => { 

    //patch the person const planet id 

}); 
xhr.send(formData); 
+0

你的後端是否理解JSON補丁,如果是,你得到的錯誤信息是什麼? – Iralution

+0

是的,它的確如此。這是我得到的,而不是推到陣列和沒有錯誤:{ 「編輯」:「2014-12-20T20:58:18.421Z」, 「氣候」:「溫帶,熱帶」, 「surface_water」: 「8」, 「name」:「Yavin IV」, 「diameter」:「10200」, 「rotation_period」:「24」, 「created」:「2014-12-10T11:37:19.144Z」, 「地形」: 「叢林,熱帶雨林」, 「萬有引力」: 「1個標準」, 「orbital_period」: 「4818」, 「人口」: 「1000」, 「ID」:3, 「居民」 :[], 「films」:[], 「[object Object]」:「」 }, –

回答

0

正如RFC Doc對JSON補丁說明,你需要附加一個「 - 」的路徑:

const formData = { "op": "add", "path": "/residents/-", "value": this.state.person.id }; 

或指定一個明確的指標,要值加入到陣列。

+0

不會推送到數組。 { 「edited」:「2014-12-20T20:58:18.423Z」, 「climate」:「frozen」, 「surface_water」:「100」, 「name」:「Hoth」, 「diameter」 :「7200」, 「rotation_period」:「23」, 「created」:「2014-12-10T11:39:13.934Z」, 「terrain」:「苔原,冰洞,山脈」, 「gravity」 「: 「1.1標準」, 「orbital_period」: 「549」, 「種羣」: 「未知」, 「ID」:4, 「居民」:[], 「膜」:[] , 「[object Object]」:「」 } –