drag2458 2018-07-09 09:37
浏览 47
已采纳

为什么数组不会通过ajax调用发送?

In my ajax code I'm sending an associative array to the go lang api but go lang would not receiving any array. Why?

for (var i = 1; i <= optionsArr; i++) {
    span_arr.push({
        day       : valueSelected,
        time_slug : i,
        timing    : $("#"+i).text(),
        count     : $('#select_count'+i).val()
    });
}
console.log(span_arr[1].time_slug);
$.ajax({
    url:"/api/v1/provider_spot",
    type:"POST",
    data:{span_arr:span_arr},
    dataType:"json",
    success:function(response){
        console.log(response);
    }
});

Why this ajax will not sending the array to the go api? Here in go lang following mvc structure I want to receiving this data:

 Route{"SaveProviderSpot", "POST", "/provider_spot", controller.SaveProviderSpot},

 func SaveProviderSpot(c *gin.Context) {
   fmt.Println(c.PostForm("span_arr"))
 }
  • 写回答

1条回答 默认 最新

  • dongsimang4036 2018-07-09 10:01
    关注

    You can not send an array directly from client to server,due to the array definition may not be the same in both sides.

    Two ways to solve it:

    a. You can convert the array into a json string in the clinet,then send it to server as a string parameter,in the server side,you can parse it and convert it to array

    b. Iterate the array,and convert it to a string using some special characters,also pass to server as string parameter,an example is as below:

    var dataStr = "";
    for (var i = 1; i <= optionsArr; i++) {
        //each array element split with 3 semicolons,and each property in element split with 2 semicolons
        dataStr += valueSelected + ";;" + i + ";;" + $("#"+i).text() 
               + ";;" + $('#select_count'+i).val() + ";;;";
    }
    $.ajax({
        url:"/api/v1/provider_spot",
        type:"POST",
        data:{dataStr:dataStr},
        dataType:"json",
        success:function(response){
            console.log(response);
        }
    });
    //now it is correct
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问读取环境变量文件失败是什么原因?
  • ¥15 在若依框架下实现人脸识别
  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 利用Sentinel-2和Landsat8做一个水库的长时序NDVI的对比,为什么Snetinel-2计算的结果最小值特别小,而Lansat8就很平均
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载