gpt4 book ai didi

javascript - 如何使用POST方法处理JSON数据?

转载 作者:行者123 更新时间:2023-11-28 16:51:19 24 4
gpt4 key购买 nike

我的请求中有以下由 JavaScript 发送的 JSON:

enter image description here

如您所见,这是:字符串 - 字符串。这是我的 JS 代码:

function saveSchemaInDatabase(schemaName, diagramJson) {
var data = new FormData();
data.append("schemaName", schemaName);
data.append("diagramJson", diagramJson);

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
};

xhttp.open("POST", "/user/saveSchemaInDatabase", true);
xhttp.send(JSON.stringify(Object.fromEntries(data)));
}

这是我的 Controller :

@PostMapping(path = { "/user/saveSchemaInDatabase" })
public String saveSchemaInDatabase(@RequestBody Map<String, String> map) {
return "redirect:/user";
}

但我收到错误 415:

enter image description here

有人可以告诉我如何在 Controller 中获取 2x 参数吗?

我也尝试过使用 DTO。
我的 DTO:

public class DTOTest {
private String schemaName;
private String diagramJson;

public String getSchemaName() {
return schemaName;
}

public void setSchemaName(String schemaName) {
this.schemaName = schemaName;
}

public String getDiagramJson() {
return diagramJson;
}

public void setDiagramJson(String diagramJson) {
this.diagramJson = diagramJson;
}
}

Controller :

@PostMapping(path = { "/user/saveSchemaInDatabase" })
public String saveSchemaInDatabase(@RequestBody DTOTest dtoTest) {
return "redirect:/user";
}

同样的错误:
enter image description here

最佳答案

我不知道这是否能解决您的问题,因为有些事情对我来说很模糊。您可以尝试以下方法:

  1. 使用 @RestController 注解您的 Controller
  2. 在发送 json 数据的 ajax 中,添加 contentTyp 作为 json 即:
    contentType: "application/json; charset=utf-8",

并用此替换您尝试过的代码

@PostMapping(value =  "/user/saveSchemaInDatabase")
public String saveSchemaInDatabase(@RequestBody DTOTest dtoTest) {
return "redirect:/user";
}

请添加您的示例 json 数据,而不是从浏览器控制台添加P.S:你的diagramJson似乎是另一个json。你想要它作为字符串吗?

关于javascript - 如何使用POST方法处理JSON数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59915548/

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