I이 사용자가 GET /register/register/newUser
를 통해이 작업을 호출하려고하면 newUser
가 사용자의 Long id
속성에 바인딩 할 수 없기 때문에 Grails의 데이터 바인딩 및 허용되는 HTTP 방법
class RegisterController {
static allowedMethods = [register: 'POST']
def register(User user) {
// action body omitted
}
}
, 나는 데이터 바인딩 실패를 얻을
컨트롤러에서 다음 작업을 .처음에는 합리적인 것처럼 보이지만, IMOG에서는 HTTP GET을 통해 호출 할 때 user
을 바인딩 할 때 아무런 시도도하지 않아야합니다. POST 만 허용한다고 선언했기 때문입니다. 내가 할 작업을 변경하는 경우
이상하게 :
class RegisterController {
static allowedMethods = [register: 'POST']
def register() {
User user = new User(params)
}
}
다시 GET /register/register/newUser
그것을 호출하려고, 그때 (405) 오류가 허용되지 예상되는 HTTP 방법을 얻을. 그것은 나에게 데이터 요청 HTTP 요청 유형을 확인하기 전에 일어나는 것, 그리고 이것이 내가 첫 번째 경우에는 바인딩 오류를 얻고 두 번째는 405 오류가 발생하는 것입니다.
두 경우 모두 405를 받아야하지 않습니까?
JIRA 파일을 작성 하시려면 사용중인 Grails 버전을 알려주십시오. 방금 샘플 2.4.2를 https://github.com/jeffbrown/allowedmethodsproblem에 만들었고 RegisterControllerSpec에 405가 예상대로 반환되는 것으로 나타났습니다. 도와 줘서 고마워. –
2.4.2 앱을 사용하면 405가 전송되기 전에 데이터 바인딩이 계속 발생하므로 개선되어야하지만 405가 전송된다는 점에 유의하십시오. 그것은 일어나지 않고있는 당신의 경우에 소리가 나는다. 그리고 나는 그것이 왜 있는지 핀으로 고정시키고 싶다. –
Grails 2.4.0에서이 문제점을 관찰했습니다. –