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 使用MATLAB进行余弦相似度计算加速
  • ¥15 服务器安装php5.6版本
  • ¥15 我想用51单片机和数码管做一个从0开始的计数表 我写了一串代码 但是放到单片机里面数码管只闪烁一下然后熄灭
  • ¥20 系统工程中,状态空间模型中状态方程的应用。请猛男来完整讲一下下面所有问题
  • ¥15 我想在WPF的Model Code中获取ViewModel Code中的一个参数
  • ¥15 arcgis处理土地利用道路 建筑 林地分类
  • ¥20 使用visual studio 工具用C++语音,调用openslsx库读取excel文件的sheet问题
  • ¥100 寻会做云闪付tn转h5支付链接的技术
  • ¥15 DockerSwarm跨节点无法访问问题
  • ¥15 使用dify通过OpenAI 的API keys添加OpenAI模型时报了“Connection Error”错误