2014-09-17 5 views
0

나는 아주 이상한 문제가있다.Django REST 프레임 워크는 어떤 이유로 든 코드바에게 401 전화를합니다.

나는 Django (Heroku) 및 Rest API (Django-rest-framework)가있는 서버가 있습니다. Sencha와 Cordova를 기반으로 HTML 앱을 만들고 있습니다.

문제는 하나의 특정 호출이 중단되어 반환되지 않는다는 것입니다.

  1. 로그인 POST 호출 작품 로그 아웃 통화는
  2. GET 항목이 작품을 호출하고 항목을 반환 작동, 다음은 사실의 목록입니다.
  3. POST 호출 (저장 또는 편집)이 작동하지 않습니다. enter image description here

    그리고 여기처럼 깨진 전화 보이는 방법은 다음과 같습니다 : 끊어진 전화에 Heroku가 로그 라인이다 ((401)를 제공 여기 enter image description here

    그리고 작업 호출처럼 보이는 방법은 다음과

입니다) :

2014-09-15T09:24:40.305543+00:00 heroku[router]: at=info method=POST path="/api/entries/" host=shpongapp.herokuapp.com request_id=46866f87-a3d4-40f4-b4fb-d5c5289bb8fc fwd="213.91.202.97" dyno=web.1 connect=1ms service=42ms status=401 bytes=789 

나는 왜 이런 일이 벌어지고 있는지 그리고 어떻게해야하는지에 대한 해답을 찾고있다. 그게 다야. 내가 원하는 코드를 게시 할 것입니다.

감사합니다.

답변

2

우리는 그것을 알아 냈습니다.

By default all error responses will include a key detail in the body of the response, but other keys may also be included.

그래서 우리는 장고에서 전체 응답을 인쇄하고 있어요 :

는 처음에 우리는 REST documentation 주부터 전체 오류를 표시하는 새로운 미들웨어를 추가했다

{"detail": "CSRF Failed: CSRF token missing or incorrect."}

기본적으로 DRF는 CSRF를 제외해야하므로 설정을 다시 확인하고 토큰 인증 외에도 SessionAuthentic ation. 그래서 우리는 주석 처리했습니다

'rest_framework.authentication.SessionAuthentication',REST_FRAMEWORK에서 401은 사라졌습니다.

"코드가 전혀 돌아 가지 않은 이유는 무엇입니까?"대답은 here입니다. 그러나 나는 그 문제를 다루지 않을 것입니다.

관련 문제