2016-09-01 2 views
0

그래서 현재 Angular2 어플리케이션이 스프링 백엔드에 포스트 요청을 보내려고하지만 현재 400 에러를 받고 있습니다. Angular2 프런트 엔드에각도 2와 스프링으로 포스트 요청 받기

서비스 :

createEntry(name: string, url: string){ 
    let body = JSON.stringify({sid:null,entryName: name, entryUrl: url, dtcreated:null}); 
    console.log(body); 
    return this.http.post(environment.serviceURL + 'createentry', body, {headers: this.getHeaders()}) 
     .map(res => {return res.json();}); 
} 
getHeaders(){ 
    let headers = new Headers(); 
    headers.append('Content-Type', 'application/json'); 
    return headers; 
} 

봄 백엔드 : 나는 내 브라우저의 콘솔에서지고있어 오류가

@RequestMapping(value="/createentry", method=RequestMethod.POST) 
@ResponseBody 
public ListEntry createEntry(@RequestParam(value = "entry") ListEntry entry){ 
    System.out.println(entry.getEntryName()); 
    System.out.println(entry.getEntryUrl()); 
    entry.setDtCreated(Calendar.getInstance().getTime()); 
    return listRepository.save(entry); 
} 

입니다

:

POST http://localhost:8001/createentry 400 ()

답변

1

그래서 매우 간단한 수정이라고 밝혀졌습니다.

난 그냥

public ListEntry createEntry(@RequestBody ListEntry entry)

public ListEntry createEntry(@RequestParam(value = "entry") ListEntry entry)

을 변경했고, 그것은 바로 작업을 시작했다. Spring에서는 @RequestParams가 GET 요청에 사용되는 동안 @RequestBody가 모든 POST 및 PUT 요청에 사용됩니다.