У меня есть приложение CRUD Java-сервлет. GET, POST, PUT и DELETE работают, когда я использую почтальона. Но когда я использую свой код javascript внешнего интерфейса, будет работать только запрос GET. Методы POST, PUT и DELETE на бэкэнде сервлета достигаются, но, кажется, что параметры не прикреплены к запросу, когда он достигает бэкенда.
Ниже приведен мой код GET JS.
function getTimePeriods(){
clearElements()
const url = 'http://localhost:8080/TimeTrackerWServlets/TimePeriodController/'
fetch(url)
.then(response => response.json())
.then(response => showTimePeriods(response))
}
Ниже приведен код POST JS.
function post(){
console.log("post file reached")
const url = 'http://localhost:8080/TimeTrackerWServlets/TimePeriodController/'
const Data = {
timePeriodId: "999",
activityType: "ANIME"
};
const otherPram = {
headers: {
"content-type" : "application/json; charset=UTF - 8"
},
body : Data, //JSON.stringify(Data)
method: "POST",
// mode: "no-cors",
};
fetch(url, otherPram)
.then(data=>{return data.json})
.then(res=>console.log(res))
.catch(error=>console.log(error))
}
Я могу console.log к объекту, к которому я хочу присоединитьштраф в порядке запроса.
Ниже приведена сокращенная версия метода doPost моего сервлета.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("doPost reached POST POST POST POST POST POST POST POST ");
setAccessControlHeaders(response);
System.out.println("startTime: " + request.getParameter("timePeriodId"));
System.out.println("startTime: " + request.getParameter("activityType"));
}
Оба
System.out.println("startTime: " + request.getParameter("timePeriodId")); ---> null
System.out.println("startTime: " + request.getParameter("activityType")); ---> null
распечатать ноль. Итак, как мне прикрепить данные к запросу на интерфейс? Твоя единственная надежда, Оби-Ван Кеноби.