2013-11-14 3 views
0

extend asfrontend 및 Spring을 백엔드로 사용하여 소규모 구성을 구성하려고합니다. 따라서 extjs에서 서버와 통신하려면 저장소에서 프록시 작성자를 구성해야합니다. 봄 컨트롤러에서 @RequestMapping을400을 가져 오는 나머지와 함께 Spring과 함께 잘못된 요청

proxy : { 

    type: 'rest', 

    reader: { 
     type: 'json', 
     idProperty: 'id', 

     root: 'data', 
     totalProperty: 'total', 
     successProperty: 'success', 
     messageProperty: 'message' 
    }, 

    writer: { 
     type: 'json', 
     allowSingle: true, 
     writeAllFields: true, 
     root: 'data' 
    }, 

    api: { 
     read:  'countries', 
     create:  'country/add', 
     update:  'country/update', 
     destroy: 'country/delete' 
    } 
} 

을 그리고 여기에 있습니다 : : 다음과 같이 내 프록시 구성 보이는

@ResponseStatus(value = HttpStatus.OK) 
@RequestMapping(value = COUNTRY_PATH + DELETE_PATH + SLASH + DELETE_ID_PARAM, method = RequestMethod.DELETE) 
public void delete(@PathVariable(DELETE_ID_PARAM) Integer deleteId, @RequestParam Object data) { 
    System.out.println(data.toString()); 
    countryService.deleteCountry(deleteId); 
} 

Tomcat은 클라이언트가 보낸 요청 "설명을 매번"400 잘못된 요청 "에 응답했다 구문 적으로 부정확하다. "

그래서 프록시 유형을 ajax로 변경하고 requestMapping이 POST 요청을 수신하면 모든 것이 올바르게 작동합니다. 그것은이 사람에게있는 기능을 제공하기 때문에 서버에 명령을 넣어 삭제할 수 있도록 일반적으로 나쁜 습관이다 기본적으로

- <!-- readonly   Is this context "read only", so HTTP   --> 
- <!--      commands like PUT and DELETE are    --> 
- <!--      rejected? [true]   

: 톰캣/conf의/web.xml 파일에서

답변

1

을 게시 삭제 또한 웹 응용 프로그램 시작시

INFO [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping] (MSC service thread 1-4) Mapped "{[/myapp/country/delete],methods=[DELETE],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public void com.myorg.web.MyController.delete(@PathVariable(DELETE_ID_PARAM) Integer deleteId, @RequestParam Object data) 
01과 같은 줄이 표시되는지 확인하십시오.

라인은 메서드가이 URL에 대한 DELETE 메서드를 처리하도록 등록되어 있는지 확인합니다.

0

봐이 같은 항목을 볼 수 있습니다 악의적 인 일을하는 것. 기본적으로 Tomcat은이를 해제하여 사용자를 보호합니다.

그것은해야 뭔가

@ResponseStatus(value = HttpStatus.OK) 
@RequestMapping(value = COUNTRY_PATH + DELETE_PATH + SLASH + "{" + DELETE_ID_PARAM + "}", method = RequestMethod.DELETE) 
public void delete(@PathVariable(DELETE_ID_PARAM) Integer deleteId, @RequestParam Object data) { 
    System.out.println(data.toString()); 
    countryService.deleteCountry(deleteId); 
} 

같은 편안한 서비스의 경우

그것을 박았을지도하는 매우 일반적입니다/당신이 path variable에 대한 잘못된 구문이처럼 보이는

관련 문제