весенний пост Не удалось загрузить ресурс: сервер ответил со статусом 400 (неверный запрос) - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь отправить объект json контроллеру пружины, используя ответную выборку.Но я получаю следующую ошибку.Не удалось загрузить ресурс: сервер ответил со статусом 400 (неверный запрос)

Но метод get может быть успешно вызван.

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

реакцииfetch:

  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());
    }

}

Task.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 ]

0 голосов
/ 14 февраля 2019

Ваш пост-адрес для реакции - http://localhost:8080/test/xx/addSprintTasks/, но на контроллере пружины - http://localhost:8080/test/xx/addSprintTasks

Удалите последнюю косую черту в javascript или добавьте ее в значение аннотации @RequestMapping в java.

0 голосов
/ 14 февраля 2019

Ваш Task.java не является POJO .Укажите реализацию конструктора по умолчанию и повторите попытку.Вам может потребоваться очистить проект, чтобы изменения вступили в силу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...