当前位置: 首页 > 知识库问答 >
问题:

Spring post加载资源失败:服务器响应状态为400(错误请求)

麻桐
2023-03-14

我试图使用react fetch将json对象发送到spring控制器。但我有以下错误。加载资源失败:服务器响应状态为400(错误请求)

但是get方法可以成功调用。

http://localhost:8080/test/xx/getSprintTasks/${this.props.sprintNo}`

反应提取:

  fetch(`http://localhost:8080/test/xx/addSprintTasks/`, {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: task 
    })
    .then(response => {
        console.log(response)
        if (response.status >= 200 && response.status < 300) {
            alert('Successfully added')
            this.setState(prevState => ({
                toDoList: [
                    ...prevState.toDoList,
                    {
                        id: temp,
                        note: text
                    }
                ]
            }))
        } else {
            alert('Somthing happened wrong')
        }
    })
    .catch(err => err)

我的身体:

   const task = JSON.stringify({
        sprintNo: "1",
        id: "1",
        note: "text",
        boardName: "todo"
    })  

我还尝试了以下操作:

  const task = JSON.stringify({
        "sprintNo": "1",
        "id": "1",
        "note": "text",
        "boardName": "todo"
    }) 

我的控制器:

 @Controller
 @RequestMapping("/xx")
 public class TestController {

    @RequestMapping(value = "/getSprintTasks/{sprintno}", method = RequestMethod.GET, produces="application/json")
    public @ResponseBody Board getSprintTasks(@PathVariable String sprintno) {
    Board board = new Board();
    board.setSprintNo(sprintno);
    board.setUniqueId(56);
    board.setDoneList(new Note[]{new Note(3, "deneme"), new Note(4, "hello wrold")});
    board.setToDoList(new Note[]{new Note(1, "deneme"), new Note(2, "hello wrold")});

    return board;
    }


    @RequestMapping(value="/addSprintTasks", method = RequestMethod.POST, consumes="application/json")
    public void addSprintTasks(@RequestBody Task task) {
    System.out.println(task.getBoardName());
    System.out.println(task.getId());
    System.out.println(task.getNote());
    System.out.println(task.getSprintNo());
    }

}

任务java:

public class Task {    
private String sprintNo;
private String id;
private String note;
private String boardName;

public Task(String sprintNo, String id, String note, String boardName) {
super();
this.sprintNo = sprintNo;
this.id = id;
this.note = note;
this.boardName = boardName;
}

public String getSprintNo() {
    return sprintNo;
}
public void setSprintNo(String sprintNo) {
    this.sprintNo = sprintNo;
}
public String getId() {
    return id;
}
public void setId(String id) {
    this.id = id;
}
public String getNote() {
    return note;
}
public void setNote(String note) {
    this.note = note;
}
public String getBoardName() {
    return boardName;
}
public void setBoardName(String boardName) {
    this.boardName = boardName;
}


}    

共有2个答案

丁学
2023-03-14

你在react上的帖子url是http://localhost:8080/test/xx/addSprintTasks/但在Spring控制器上是http://localhost:8080/test/xx/addSprintTasks

删除javascript上的最后一个斜杠,或将其添加到java上@RequestMapping注释的值上。

马梓
2023-03-14

您的Task.java不是POJO。提供默认构造函数实现,然后重试。有时您可能需要清理项目以使更改生效。

 类似资料:
  • 我的代码工作正常,但当我试图从后端获取数据时,我收到一个错误“400错误请求”,我不知道发生了什么错误。请解决我的问题。 //API==http://localhost:8000/api/ 指数js公司 在这里,我分享了我的实际代码,其中添加操作被执行到表单中。js公司 $$$$$$$$$$$$$$$ 后端 $$$$$$$$$$$$$$$$$$$$$ 待办事项。js/路由器 待办事项。js/控制器

  • 我正在制作一个博客应用程序。如果我尝试访问单个概要文件,微调器将继续运行,但当我签入react dev工具时,数据就在那里。我哪里出错了?其他一切都很好。配置文件是可见的,但当我进入单个配置文件时,问题就出现了 轮廓js公司 数据来自的源,配置文件。js公司 我的github回购链接

  • 服务器js公司 应用程序。js公司 注册处理程序代码 当我试图注册一个用户时,我遇到了错误400。加载资源失败:服务器响应状态为400(错误请求),我已附加我的注册表。js文件寄存器。js:26个职位https://warm-earth-96837.herokuapp.com/register400(错误请求)寄存器。onSubmitSignIn@寄存器。js:26 400错误请求错误是一个HTT

  • 我在Amplify中遇到了这个错误,我完成了构建tho。 该系统可以在本地环境中工作。包裹本地env的json脚本是这样的。 我的放大镜。xml如下。 屏幕完全倾斜了。 有没有人有同样的问题?

  • 我正在尝试发送这样的帖子请求: 我使用的是Apache服务器,这是我的<代码>。htaccess文件 无论何时发送请求,都会出现以下错误: 为什么会这样?我曾经使用Steam获取请求,它们工作正常,但这个帖子请求似乎不起作用。 编辑:这是steamcommunity。com的机器人。txt文件: 上面写着,所以这就是我收到错误的原因吗?

  • 这是我第一次使用Sanity构建博客网站来练习使用React JS,在那里我应该从sanity.io.调用一个API,但是我的React网站无法从Sanity获取数据。在网页上应该从Sanity博客导入数据的区域实际上是一个空白屏幕。当我检查控制台时,我发现了这个错误: 这是我的网络负载 还有我的网络预览 这是本应显示信息的页面的代码 非常感谢你的帮助。谢谢