Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用对象内的多个属性向db.json发出POST请求_Javascript_Ajax_Json Server - Fatal编程技术网

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服务器中,您应该解码接收到的行,以便它可以成为字典(键=>值对)!