jquery - 使用 get 方法将数据从 ajax 发送到服务器
问题描述
这个主题与其他主题不重复我的问题是在获取方法中我有这些数据:
var things = [
{ "name": "n1" },
{ "name": "n2" }
];
阿贾克斯调用:
$.ajax({
url: /controller/GetList,
data: JSON.stringify(things),
contentType: "application/json; charset=utf-8",
dataType: "json"
});
服务器端:
public JsonResult GetList(
List<Thing> things) => Json("OK");
public class Thing
{
public string name { get; set; }
}
现在,当我使用方法:“POST”调用 ajax 并在服务器端使用 [FromBody] 获取数据时,一切正常,但如果我想使用 GET 方法调用 ajax,服务器端的东西为空或空,为什么?
我试试这个:
data: JSON.stringify({ things: things })
traditional: true
但它不起作用
我的项目在 Asp.net Core 3.1
解决方案
如果您确实想GET
在 JavaScript 客户端上发出 HTTP 请求并传递数据,您可以尝试通过查询字符串传递它们,如下所示。
var par = "";
$.each(things, function (i,val) {
par += "&things[" + i + "].name=" + val.name;
});
$.ajax({
url: "/controller/GetList?" + par.substring(1, par.length),
//data: JSON.stringify(things),
contentType: "application/json; charset=utf-8",
dataType: "json"
});
行动GetList
public JsonResult GetList([FromQuery]List<Thing> things) => Json("OK");
测试结果
推荐阅读
- linux - Raspberry 作为隔离物联网网络的接入点
- javascript - 弹出水平居中但不垂直居中
- python-3.x - 有没有办法在python中预处理这种数据?
- kubernetes - fabric8 作为 kubernates 客户端:杀死空闲 X 秒/分钟/小时的 pod
- google-cloud-platform - 无论如何,后端是否可以在没有带有对话流的请求的情况下发送响应?
- azure-devops - Azure Devops 中的多阶段、多工件部署触发器
- hadoop - 从 ClickHouse 访问 HDFS HA 集群失败,出现错误 HdfsConfigNotFound
- c# - Avoid string concatenation for parameters when they are null
- regex - 正则表达式在特定字符串和特定字符之间查找字符串
- angular - Angular 立即从服务滚动到顶部