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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题