我有以下代码:
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调用。
答案 0 :(得分:1)
尝试一下:
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)
}