AJax에서의 dataType과 contentType
- contentType은 서버로 데이터를 보낼 때의 타입을 말합니다. JSON으로 보내줄 때는
contentType : 'application/json'
와 같이 사용할 수 있습니다. - dataType은 서버로부터 데이터를 받을 때의 타입을 말합니다.
- 위 두 가지의 경우에서 타입이 맞지 않으면 parsing오류가 발생하는데 혹시 그런 parsing 오류가 발생하면 의심해봐야 할 부분이 이 두 부분입니다!
- contentType은 서버로 데이터를 보낼 때의 타입을 말합니다. JSON으로 보내줄 때는
Ajax로 받은 데이터 포맷팅은 어떻게 해야할까요?
- 이 부분 때문에 많이 헤매였습니다. 이전에 받은 데이터에 대해서 해당 html 안에 대입해 넣었거든요.
- 전 html을 가지고 있는 변수에다가
format()
메서드를 쓰면 그 안의 매개변수가 대입이 되는데 이것이 Javascript의 메서드 인줄 알았습니다. 하지만 이것 만들어져있는 메서드를 쓰는 것이더라구요.
String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined' ? args[number] : match ; }); };
- 위 코드를 통해 제대로
format()
을 사용할 수 있습니다.
(cascade = CascadeType.ALL)
속성을Issue
안의Comment
List에 쓰면 왜 오류가 발생할까요?- 주요 에러 메시지가 다음과 같았습니다.
Error during managed flush [org.hibernate.PersistentObjectException: detached entity passed to persist
- 이게
CascadeType.ALL
을 지정해주고 나서부터 생긴 오류라 저는 이 부분에 초점을 두어 문제를 찾았습니다. 하지만 인터넷 검색을 하면서 이것이 문제가 아니라 제가 기존에 넣어준 데이터에 문제임을 알게되었습니다. - 전 테스트를 위해서 데이터를 새로 만든 다음 진행을 하는데요. 그 과정에서
String location = createResource(url, BRAD, COMMENT);
을 사용하였습니다.createResource()
해당 매개변수를 통해 url에 접근하여 제가Comment
객체 생성을 말하는 것인데요. - 문제는 저 매개변수의
COMMENT
였습니다. 이 상수값을 만들면서 나중에 테스트에 쓰일 것을 염두해두고 Id값을 미리 부여했었거든요. 그런데Comment
객체를 생성하려고 하는데 제가 보낸 데이터에 Id값이 이미 부여있기 때문에 이러한 문제가 발생한 것입니다. - 그렇기 때문에 제가 검색한 링크에서도
@GeneratedValue
사용시 유의하라고 말합니다. 알아서 Id를 부여해주는데 미리 Id가 부여된 경우가 있을 수도 있기 때문이죠.
'TIL' 카테고리의 다른 글
Today's Dev Notes(2019-01-07) (0) | 2019.01.07 |
---|---|
Today's Dev Notes(2019-01-06) (0) | 2019.01.06 |
Today's Dev Notes(2019-01-04) (0) | 2019.01.04 |
Today's Dev Notes(2019-01-03) (0) | 2019.01.03 |
Today's Dev Notes(2019-01-01) (0) | 2019.01.01 |