Я строю приложение Todo с бэкэнд Spring и A reAct Frontend. Бэкэнд обеспечивает API, и проект контейнер с использованием docker .
my @getmapping запросы работают правильно, но мой @Postmapping метод, похоже, вообще не работает. Когда я пытаюсь добавить новый элемент Todo, я получаю метод 405, не разрешенную ошибку . Кроме того, я не вижу никаких журналов весной, что заставляет меня думать, что запрос даже не достигает бэкэнда. < /P>
Что может вызвать эту проблему? Любая помощь будет оценена!const handleSubmit = async (e) => {
e.preventDefault();
if (title.trim() === "") return;
try {
const response = await fetch(`${baseUrl}/api/todos/`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ title }),
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const newTodo = await response.json();
onAdd(newTodo);
setTitle("");
} catch (error) {
console.error("There was an error adding the todo:", error);
}
};
Сопоставления контроллера:
@RestController
@RequestMapping("/api")
public class TodoController {
private static final Logger logger = LoggerFactory.getLogger(TodoController.class);
@Autowired
private TodoService todoService;
@GetMapping("/todos/")
public ResponseEntity getAllTodos() {
logger.info("GET request to /api/todos");
List response = todoService.getTodos();
return ResponseEntity.ok(response);
}
@GetMapping("/todos/{id}")
public ResponseEntity getTodoById(@PathVariable Long id) {
logger.info("GET request to /api/todos/{}", id);
TodoResponse response = todoService.getToDoById(id);
return ResponseEntity.ok(response);
}
@PostMapping("/todos/")
public ResponseEntity addTodo(@RequestBody TodoRequest request) {
logger.info("POST request to /api/todos with body: {}", request);
TodoResponse response = todoService.createToDo(request);
return ResponseEntity.ok(response);
}
@PutMapping("/todos/{id}")
public ResponseEntity updateTodo(@PathVariable Long id, @RequestBody TodoRequest request) {
logger.info("PUT request to /api/todos/{} with body: {}", id, request);
TodoResponse response = todoService.updateToDo(id, request);
return ResponseEntity.ok(response);
}
@DeleteMapping("/todos/{id}")
public ResponseEntity deleteTodo(@PathVariable Long id) {
logger.info("DELETE request to /api/todos/{}", id);
todoService.deleteToDoById(id);
return ResponseEntity.noContent().build();
}
}
vite proxy config:
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";
import dns from "node:dns";
dns.setDefaultResultOrder("verbatim");
// https://vite.dev/config/
export default defineConfig({
plugins: [react()],
server: {
proxy: {
"/api/todos/": {
target: "http://build-api:8080",
changeOrigin: true,
secure: false,
},
},
},
});
Подробнее здесь: https://stackoverflow.com/questions/794 ... g-todo-app
Запрос на загрузку Spring Boot Верните 405 в приложении Dockerized React + Spring Todo ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как создать функцию редактирования в моем приложении Todo Vanilla JS? [закрыто]
Anonymous » » в форуме Javascript - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-