inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Vue-Django-Bootstrap 뚝딱 블로그

댓글 등록 에러, 도와주세요

593

SHINH KIM

작성한 질문수 4

0

댓글 등록시 csrf 에러가 발생합니다.

에러 코드

Forbidden (CSRF token from the 'X-Csrftoken' HTTP header has incorrect length.): /api/post/comment/add/
[10/Jan/2023 00:47:03] "POST /api/post/comment/add/ HTTP/1.1" 403 2564
Forbidden (CSRF token from the 'X-Csrftoken' HTTP header has incorrect length.): /api/post/comment/add/
[10/Jan/2023 01:01:20] "POST /api/post/comment/add/ HTTP/1.1" 403 2564

axios code

    onSubmitForm() {
      let form = new FormData();
      form.set("post", this.post?.id);
      form.set("content", this.commentValue);
      axios
        .post("/api/post/comment/add/", form, {
          // headers: { "X-CSRFToken": "{{csrf_token}}" },
        })
        .then((res) => {
          console.log(res.data);
        });
    },

views.py

...
class ApiAddComment(BaseCreateView):
    model = Comment
    fields = '__all__'

    def form_valid(self, form):
        self.object = form.save()
        comment = obj_to_comment(self.object)
        return JsonResponse(data=comment, safe=True, status=201)

    def form_invalid(self, form):
        return JsonResponse(data=form.errors, safe=True, status=400)

urls.py

...  
path('post/comment/add/', views.ApiAddComment.as_view(), name='add_comment'),

 

 

@csrf_exempt
class ApiAddComment(BaseCreateView):
...

이런식으로 시도해보니  as_view()가 없다는 에러가 발생해서 이 부분은 포기했습니다.

 

 

bootstrap vuejs django

답변 1

0

김석훈

안녕하세요. 독자님.

CSRF 관련 아래 코드를 <script> 내 상단에 넣었는지요 ?

<script>
    axios.defaults.xsrfCookieName = 'csrftoken';
    axios.defaults.xsrfHeaderName = 'X-CSRFTOKEN';

그리고 참고로 CBV에 데코레이터를 붙일 때는, 아래 내용 참고하세요.

 https://docs.djangoproject.com/en/4.1/topics/class-based-views/intro/#decorating-the-class

0

SHINH KIM

이것 저것 수정 하다보니 해결 되었습니다.

똑같이 하기에는 복붙코딩 될 것 같아, 강의와는 좀 다르게 진행하다보니 에러가 가끔씩 나오네요

감사합니다.

loop is not defined

0

49

1

__le__, __ge__ 관련 질문

0

43

0

atom 서비스 종료

0

48

1

atom 서비스 종료

0

52

1

가상 환경과 차이 도커 질문

0

47

1

진도미확인 (진도가 안 넘어감)

0

84

1

따단?

0

268

1

혹시 꼭 파이참을 설치해야하나요?

0

347

1

post detail 임시화면 수업에서

0

323

1

Vue 배포 질문

0

556

1

navbar-logo.svg 404에러

0

561

3

블로그 메모 왼쪽 위치 및 에러

0

3726

1

블로그 리스트 이미지를 클릭했을 때 링크를 읽지 못하고 있습니다.

0

339

2

경로를 찾지 못하고 있습니다

0

244

1

vue CDN 문의

0

238

1

코드 문의

0

262

1

sb-forms-latest.js:5 Uncaught Error: GET_ELEMENTS: -> form[data-sb-form-api-token]

1

1270

2

blog list가 나오지 않습니다.

0

263

1

궁금한게있어 질문드립니다!

0

280

1

Django admin 계정 생성방법

0

471

2

Internal 500 서버오류 질문드립니다

0

351

3

안녕하세요 좋은강의 감사합니다 오류때문에 질문드려요

0

370

3

소스요청

0

343

2

안녕하세요 오류가 있서서 봐주세요

0

241

1