-
-
Save marcobehlerjetbrains/3b9ed46953f810160e3a47e81f88e027 to your computer and use it in GitHub Desktop.
| (async function createPhoto() { | |
| let photo = {"fileName": "hello.jpg"}; | |
| await fetch("http://localhost:8080/photoz", { | |
| method: "POST", | |
| headers: { | |
| "Accept": "application/json", | |
| "Content-Type": "application/json" | |
| }, | |
| body: JSON.stringify(photo) | |
| }) | |
| .then(result => result.text()) | |
| .then(text => alert(text)); | |
| })(); |
The fetching code is correct, just update the mapping in your controller, to avoid this 405 (Method Not Allowed) Error:
You are not passing the actual photo variable, should be:
@PostMapping("/photoz")
public ResponseEntity<Photo> create(@RequestBody Photo photo) {
photo.setId(UUID.randomUUID().toString());
db.put(photo.getId(), photo);
return new ResponseEntity<>(photo, HttpStatus.CREATED);
}The fetching code is correct, just update the mapping in your controller, to avoid this 405 (Method Not Allowed) Error:
You are not passing the actual photo variable, should be:
@PostMapping("/photoz") public ResponseEntity<Photo> create(@RequestBody Photo photo) { photo.setId(UUID.randomUUID().toString()); db.put(photo.getId(), photo); return new ResponseEntity<>(photo, HttpStatus.CREATED); }
Worked for me thank you
Thanks @tommywong712 and @WaterChick
Adding a cors origin solves cross-origin issues in browsers -
@CrossOrigin(origins = "*")
@RestController
public class PhotozController {
}I was getting error 405 while the use the same JS in the gist, but it turned out i accidentally had
@PostMapping("/photos")
instead of
@PostMapping("/photoz")
(an s instead of a z in the post mapping path)
so if make sure you spelt that correct also.
@CentreMetre yes usually error 405 indicates somewhere you have gone incorrect in Mapping annotations
same here