gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 02:09:35 25 4
gpt4 key购买 nike

在我的 ajax 代码中,我向 go lang api 发送了一个关联数组,但 go lang 不会接收任何数组。为什么?

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);
}
});

为什么这个 ajax 不会将数组发送到 go api?在遵循 mvc 结构的 go lang 中,我想接收此数据:

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

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

最佳答案

您不能直接从客户端向服务器发送数组,因为两端的数组定义可能不相同。

两种解决方法:

一个。可以在clinet中将数组转为json字符串,然后作为字符串参数发送给服务器,在服务器端解析并转为数组

迭代数组,并使用一些特殊字符将其转换为字符串,并作为字符串参数传递给服务器,示例如下:

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

关于ajax - 为什么数组不会通过 ajax 调用发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51242404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com