PutMapping 403 запрещено - PullRequest
       12

PutMapping 403 запрещено

0 голосов
/ 05 июля 2019

Я пытаюсь сделать одно обновление по протоколу http, используя глагол "put", но я получаю 403 запрета с методом запроса: OPTIONS от chrome.

Если я попытаюсь изменить глагол с PUT на POST, это сработает.

Вот мой код сервера (весна)

    @PutMapping("/path")
    public ResponseEntity putMethod(@RequestBody Dto dto) throws URISyntaxException {
        log.debug("put is called");

        return ResponseEntity.ok().build();
    }

вот мой угловой код

update(dto: dto) {
    return this.http
      .put<Dto>(this.resourceUrl + '/path', dto, { observe: 'response' })
      .pipe();
  }

Если я изменил пут на пост в угловых и пружина журнал написан правильно, но мне нужно обновить, и я хочу использовать правильный глагол

Хромированные журналы

 Request URL: http://localhost:9080/path
Request Method: OPTIONS
Status Code: 403 Forbidden
Remote Address: 127.0.0.1:9080
Referrer Policy: no-referrer-when-downgrade
Allow: GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Connection: Close
Content-Language: it-IT
Content-Length: 20
Date: Fri, 05 Jul 2019 15:19:14 GMT
Vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers
X-Powered-By: Servlet/3.1
Provisional headers are shown
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: PUT
Origin: http://localhost:4200
Referer: http://localhost:4200/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

Вот мой java post mapping

@PostMapping("/path")
public ResponseEntity postMethod(@RequestBody Dto dto) throws URISyntaxException {
    log.debug("post is called");

    return ResponseEntity.ok().build();
}

и угловой почтовый индекс

post(dto: dto) {
    return this.http
      .post<Dto>(this.resourceUrl + '/path', dto, { observe: 'response' })
      .pipe();
  }

Вот логи хрома для пост-запроса (работа)

Request URL: http://localhost:9080/path
Request Method: POST
Status Code: 200 OK
Remote Address: 127.0.0.1:9080
Referrer Policy: no-referrer-when-downgrade
Access-Control-Allow-Origin: *
Content-Language: it-IT
Content-Length: 16
Content-Type: application/json;charset=UTF-8
Date: Fri, 05 Jul 2019 15:48:01 GMT
Vary: Origin, Access-Control-Request-Method, Access-Control-Request-Headers
X-Powered-By: Servlet/3.1
Provisional headers are shown
Accept: application/json, text/plain, */*
Content-Type: application/json
Origin: http://localhost:4200
Referer: http://localhost:4200/
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Я вижу, что вы вызываете API, работающий на 9090 из 4200, вы можете получить журналы Chrome, показывающие ошибку Access control allow origin.

Если это то, что вам нужно, возможно, вам придется разрешить свое происхождение.Там будет риск для безопасности.Поэтому вы должны быть осторожны с этим.

Добавление CrossOrigin разрешит этот поток.

@CrossOrigin(origins = "http://localhost:4200")
@PutMapping("/path")

https://spring.io/guides/gs/rest-service-cors/

0 голосов
/ 05 июля 2019

У вас есть разрешенный глагол PUT на вашем внутреннем сервере? Я не вижу проблем на стороне интерфейса.

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