前端向后端传一个json数组对象

首先在前端已经获取到这个数组对象:

let arr=[
  {
  id:"1",
  content:"spd",
  },
 {
  id:"2",
  content:"spd",
  },
 {
  id:"3",
  content:"spd",
  },
 {
  id:"4",
  content:"spd",
  }
]

后端需要接受的json数组格式:

let arr=[{"id":"1","content":"spd"},{"id":"2","content":"spd"},{"id":"3","content":"spd"},{"id":"4","content":"spd"}]

刚开始一直想需要把数组转成json数组,然后再传给后端接口,
最后才发现ajax请求会自动把数组转成json数组,我们就不用再去转一次,
但是最后发现还是报未知错误,经查看发现传给后端的数据变成:0:[Object object]...
最后发现在前端向后端传输的数据进行定义:

export default function Api(url, method, data = {}, istransform = true, extra) {
    let requestObj = {
        url,
        method
    }
    if (method.toLocaleLowerCase() == 'post') {
        requestObj.data = data;
        if (istransform) {
            requestObj.transformRequest = [function (data) {
                var formData = new FormData();
                Object.keys(data).forEach((v, i, a) => {
                    formData.append(v, data[v]);
                })
                return formData;

            }]
        }
        if (extra && extra == 'blob') {
            //导出额外设置响应类型
            requestObj.responseType = extra;
        }
        if (extra && extra == 'timeoutMore') {
            requestObj.timeout = 30000
        }
    } else if (method.toLocaleLowerCase() == 'get') {
        requestObj.params = data
    }
    return request(requestObj)
}

可以看到当发送数据的方式是“post”的时候,如果不传或者传的是true,就会把发送的json数据转成formdata对象,所以在页面中我们可以看到发送的数据变成了:0:[Object object],1:[Object object]...
所以传的值应该是

export function bureauSaveShow(data) {
  return Api("/url", "POST", data, false)
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。