Javascript 使用对象内的多个属性向db.json发出POST请求
我有以下代码:Javascript 使用对象内的多个属性向db.json发出POST请求,javascript,ajax,json-server,Javascript,Ajax,Json Server,我有以下代码: function createObject(){ let object = { product1 : "Apple", product2 : "Banana", product3 : "Cucumber", product4 : "Duba", product5 : "Emil", product6 : "Fidschi", } return object } function commonAJAXPOSTCall(
function createObject(){
let object = {
product1 : "Apple",
product2 : "Banana",
product3 : "Cucumber",
product4 : "Duba",
product5 : "Emil",
product6 : "Fidschi",
}
return object
}
function commonAJAXPOSTCall(jsonstring){
return $.ajax({
type: 'POST',
data: jsonstring,
url: "http://localhost:3000/posts"
}).then((response) => {
return response
})
}
export async function jsonDBSetter(){
let object = createObject()
//console.log(object)
object = JSON.stringify(object)
let resultCheck = await commonAJAXPOSTCall(object)
console.log(resultCheck)
}
现在的问题是,最终,来自对象的数据不会像我希望的那样插入到“posts”表中。
我希望每个属性都插入到它自己的行中,这样我就有了“key=>value”,就像它在对象中一样。
然而,实际的行为是JSON服务器创建一个键,然后将整个JSON字符串保存到这个单键
我对使用json服务器非常陌生,到目前为止,我还没有找到任何有用的方法来解释我的用例应该做什么
编辑:我希望避免一种“变通方法”,在这种方法中,我循环遍历对象,并对JS对象的每个成员进行AJAX调用。尝试以下方法:
return $.ajax({
type: 'POST',
data: jsonstring,
contentType: "application/json",
url: "http://localhost:3000/posts"
}).then((response) => {
return response
})
如果它不起作用,您可以尝试使用Formdata,如下所示:
function createObject(){
let form_data = new FormData();
form_data.append('product1', "Apple");
form_data.append('product2', "Banana");
form_data.append('product3', "Cucumber");
form_data.append('product4', "Duba");
form_data.append('product5', "Emil");
form_data.append('product6', "Fidschi");
return form_data;
}
function commonAJAXPOSTCall(formdata){
return $.ajax({
dataType: 'text',
type: 'POST',
contentType: false,
processData: false,
data: formdata,
url: "http://localhost:3000/posts"
}).then((response) => {
return response
})
}
export async function jsonDBSetter(){
let formdata = createObject()
let resultCheck = await commonAJAXPOSTCall(formdata)
console.log(resultCheck)
}
谢谢出于某种原因,当使用formdata方法时,我的JSON服务器上根本没有数据^^会创建一个id为的新行,但它不包含任何数据。您提到的第一种方法仍然只是将所有内容都放在一行中,而不是为每个键=>值对创建单独的行。@baryon123对于第一种方法,在JSON服务器中,您应该解码接收到的行,以便它可以成为字典(键=>值对)!