javascript에서 ajax로 보내는 변수가 서버에 받아서 사용하는 변수와 같아야 한다.
javascript에서 content 변수 대신 textbox로 설정하고
서버에서는 content로 사용해서 실행했을 때 404 error가 떴다.
서버에서 작성한 변수와 통일하면 에러가 뜨지 않는다.
function saveArticle() {
let content = {"content":$("#writerArticle").val()}
$.ajax({
type: "POST",
url: `/api/upload`,
contentType: 'application/json; charset=utf-8',
data: JSON.stringify(content),
success: function (response) {
alert("게시글 작성 완료!");
}
})
}
public class Upload extends Timestamped {
@GeneratedValue(strategy = GenerationType.AUTO)
@Id
private Long idx;
@Column(nullable = false)
private String content;
public Upload(UploadDto uploadDto) {
this.content = uploadDto.getContent();
}
}
$.ajax is not a function error
원인은 jquery를 가져올때 slim으로 가져오면 ajax는 지원을 안해준다는 것이다.
근데 나는 slim을 지정한게 없는데? 하고 검색해보니 팀원분이 기본세팅한 코드에서 설정되어있었다.
이를 주석 처리하고
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
위 코드를 작성했더니 오류가 해결되었다.
출처 >> $.ajax is not a function(jQuery 에러)
404 error
400, 404 error가 번갈아가면서 떴다.
서버에서는 에러가 뜨지 않았고 브라우저 창에서만 떴는데 404가 뭔지 검색해보니
bad request라고만 뜨고 정확하게 뭐가 잘못된건지 몰랐다.
결론은 아래와 같다.
javascript에서 서버에 보낼 때 변수를 이렇게 저장하고 보냈는데 이게 틀린 코드였다.
let content = $("#writerArticle").val()
아래와 같이 작성하면 정상적으로 실행된다.
여러 변수가 있을 때만 감싸주는게 아니었다.🥲
let content = {"content":$("#writerArticle").val()}
@EnableJpaAuditing
입력한 데이터를 확인하기 위해 h2-console로 확인해봤는데 아래와 같이 Timestamped에서 null이 나왔다.
알고보니 __ Application.java에 annotation을 하나 넣지 않았다.
@EnableJpaAuditing을 추가하고 다시 실행하면 아래와 같이 정상적으로 실행된다.
Team project 😱😱😱😱😱😱😱😱😱😱😱😱😱😱
Readme.md랑 Wiki 열심히 추가하고 있는데 혼자 다하려고 하니 너무 버거워서
팀원들한테 Wiki 각자 맡은 부분 api설계나 와이어프레임만이라도 작성해달라고 슬랙 공지방이나
회의할 때 계속 말씀드렸는데 안채워져서 언제쯤 채워질까 걱정했는데 그게 문제가 아니었다.
회의에서 했던 모든 규칙들이 안지켜지고 있는게 더 큰 문제였다.
회의에서 틀을 예시로 짠 걸 보여주면서 이런 식으로 하는 걸로 동의를 얻어 진행하기로 했는데
확인을 해보니 안지키고 계셨다. 내 예시가 어려운거였나..🥲
팀 프로젝트는 잘 되고 있는 걸까...?
회의에서 commit할 때 틀을 정하고 까먹으실까봐 wiki에 형식 올리고 슬랙에 한번 더 올린 것을 보여드렸는데
안 지켜지고 있어서 이 부분 자체를 까먹으신 것 같아
다시 issue에 공지를 올리고 슬랙에 확인해달라는 글과 함께 추가 예시를 작성하고 wiki 페이지에 형식을 보완했다.
내 기준엔 상세하게 예시를 적었는데 상대방은 아닐 수도 있다는 생각에 계속 추가할게 많다보니
내가 할 일들이 점점 더 많아진다. 팀프로젝트가 이런 점에서 어려운 것 같다.
회의에서 projects 카드를 넣을 때 규칙을 정했는데
Review in progress에는 기존 계획과는 다르게 구현할 경우에만 올리기로 하루~이틀 동안 얘기했는데
자꾸 기존 기능을 구현 하시고 Review in progress에 올리시고
여태까지 회의했던 내용이 지켜지는게 없으니깐 뭔가 회의를 왜 하고 있지라는 생각도 든다.
뭔가 코딩하는 것보다 다른 팀은 어떻게 하는지 확인하고 우리 프로젝트에 적용하고
보완할 점 찾고 관리하느라 바쁜데 나만 바쁜 느낌이 드는 것 같기도 하고
뭔가 정리가 안되어 있는데 하려고 하니깐 이런 느낌이 드는 건지도 모르겠다.
'TIL' 카테고리의 다른 글
81일차(전 날 오류 해결하기 & 모의면접 후기) (1) | 2021.12.02 |
---|---|
80일차 (0) | 2021.12.01 |
78일차 (0) | 2021.11.30 |
75일차(.gitignore) (0) | 2021.11.26 |
74일차(퀴즈 내주기) (0) | 2021.11.25 |