данные формы работают с использованием почтальона, но не реагируют, метод post, Springboot - PullRequest
0 голосов
/ 24 февраля 2020

Мы используем реакцию js с springboot. Мы написали услугу и чек из формы почтальона. Это работает, но когда мы используем ответ js, это не работает. Попадание конечной точки покоя, но не загрузка данных полезной нагрузки в сервис. для React мы используем const formData = new FormData () и добавляем все необходимые данные. Код реакции

const formData = new FormData();
formData.append("event", this.state.status);
formData.append("startDate", this.state.startDateTxt);
formData.append("sourceSystem", this.state.sourceSystem);
formData.append("endDate", this.state.endDateTxt);
formData.append("minPrice", this.state.minPrice);
formData.append("maxPrice", this.state.maxPrice);
httpRequest.open("POST", "http://localhost:8080/sa/searchData", true);
httpRequest.setRequestHeader("Content-Type","application/form-data");
httpRequest.onreadystatechange = () => {
    console.log("httpRequest.readyState", 
    httpRequest.readyState);
    if (httpRequest.readyState === XMLHttpRequest.DONE 
      && httpRequest.status === 200) {
        console.log("httpRequest.responseText ", httpRequest.responseText);
        updateData(JSON.parse(httpRequest.responseText));
    }
};
httpRequest.send(formData);

пружинный башмак

@PostMapping(value = "/sa/searchData")
public List<DataResponse> searchData(SearchCriteria searchCriteria) {
    return saService.searchData(searchCriteria);
}

1 Ответ

0 голосов
/ 25 февраля 2020

Код ошибки '408' указывает на то, что проблема в коде реакции, отправляющем данные формы.

Сервер отправляет ошибку «408», когда клиент отправил ему неполный запрос.

Проблема может быть связана с блоком операторов, начиная с

'httpRequest.open ("POST", "localhost: 8080 / sa / searchData", true); ...

Этот блок кода открывает соединение с сервером, но никогда не завершает отправку запроса.

Это приводит к превышению времени ожидания сервером полного запроса от клиента и в конечном итоге отправки ошибки 408.

Как решить проблему?

Добавьте метод .send () после .open () для завершения отправки HTTP-запроса.

Пример рабочего кода:

httpRequest.open('POST', "localhost:8080/sa/searchData", true)
// add headers and other parameters
// Send the request
httpRequest.send()

Дополнительная информация:

https://malcoded.com/posts/react-http-requests-axios/

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