inflearn logo
강의

Course

Instructor

Vue-Django-Bootstrap Quick Blog

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

574

SHINH KIM

4 asked

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

Answer 1

0

bestdjango

안녕하세요. 독자님.

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

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

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

감사합니다.

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

0

41

1

자료 화면 문의

0

40

1

(질문)KG이니시스 팝업차단 문제 발생(강의 13. 자바스크립트만으로 포트원 결제 구현하기, 7분18초)

1

163

2

강의에 나왔던 js 파일이 깃허브에 없습니다

1

67

1

RuntimeError: There is no current event loop in thread 'MainThread'

0

84

1

chapter 07-01 실행 오류

0

67

1

따단?

0

244

1

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

0

318

1

post detail 임시화면 수업에서

0

309

1

Vue 배포 질문

0

536

1

navbar-logo.svg 404에러

0

536

3

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

0

3701

1

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

0

316

2

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

0

223

1

vue CDN 문의

0

223

1

코드 문의

0

241

1

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

1

1247

2

blog list가 나오지 않습니다.

0

240

1

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

0

260

1

Django admin 계정 생성방법

0

446

2

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

0

322

3

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

0

354

3

소스요청

0

328

2

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

0

226

1