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

标签 javascript spring

我的请求中有以下由 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/

相关文章:

javascript - 如何在 meteor.js 上保存额外的用户详细信息,例如家庭住址

java - 检查 url 是否等于或者是 的子目录?

java - Spring JUnit 未从 XML 加载整个 applicationContext

java - 了解 spring 4 (spring-context) maven 依赖

javascript - 如何向 GLTF 模型添加光泽度/镜面纹理?

javascript - $location.path() 返回错误值

javascript - 防止链接打开并使用 flickr 徽章激活 fancybox 幻灯片

java - Spring junit测试错误 "could not find current request via RequestContextHolder"

java - 如何有条件地调用 spring validator

javascript - 音频ScriptProcessorNode outputBuffer在Chrome中仅包含0