[英]How to send @RequestParam in AJAX POST request
I have my API which accepts Request Param:我有我的 API 接受请求参数:
@PostMapping(value = "/export")
@ResponseBody
public ResponseEntity<String> bulkExport(
@RequestParam(value = "managedObjects", required = false) List<String> managedObjects) {
//data
}
);
I want to send AJAX POST request.我想发送 AJAX POST 请求。
$.ajax({
type: "POST",
//url: "policy/js_policy",
url: "/export/ ,
async: false,
data: { "managedObjects": ["Audit","Logs"]},
contentType: "application/json; charset=utf-8",
dataType: "json",
complete: function (XMLHttpRequest, textStatus) {
//File Handling
}
});
I tried to send managedObjects in URL.我试图在 URL 中发送 managedObjects。 In data also I am sending the same.But my API is not working.
在数据中,我也发送相同的数据。但我的 API 无法正常工作。 How to send the @RequestParam from AJAX POST request exactly?
如何准确地从 AJAX POST 请求发送 @RequestParam?
pass a list in Query Param
在
Query Param
中传递一个列表
$.ajax({
...
url: "/export?managedObjects=Audit,Logs" ,
...
});
pass a list in Request Body
在
Request Body
中传递一个列表
$.ajax({
type: "POST",
url: "/export/",
...
data: {managedObjects[0]: "Audit",
managedObjects[1]: "Logs"}
...
});
Try stringifying your data:尝试对数据进行字符串化:
var data = {
managedObjects: ["Audit", "Logs"]
}
$.ajax({
type: "POST",
url: "/export/",
async: false,
data: JSON.Stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
complete: function (XMLHttpRequest, textStatus) {
}
});
Additionally you should use "name" instead "value" in @RequestParam:此外,您应该在@RequestParam 中使用“名称”而不是“值”:
@PostMapping(value = "/export")
@ResponseBody
public ResponseEntity<String> bulkExport(
@RequestParam(name = "managedObjects", required = false) List<String> managedObjects) {
//data
}
); );
I think the problem is just with list that you want to send in your request.我认为问题在于您要在请求中发送的列表。
var dataToSend = {
list: [{ fieldname: 'ABC' }, { fieldname: 'DEF' }]; // your list should something like this.
$.ajax({
type: "POST",
//url: "policy/js_policy",
url: "/export/?managedObjects=" + Mos ,
async: false,
data: JSON.stringify(dataToSend),
contentType: "application/json; charset=utf-8",
dataType: "json",
complete: function (XMLHttpRequest, textStatus) {
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.