2017-04-21 44 views
0

當我執行POST以獲取端點中應該接受POST請求的標記時,我收到了這個405。從AngularJS發佈到Django API以獲取JWT並返回405錯誤

我使用rest_framework和rest_framework_jwt

端點:

from django.conf.urls import url 
from django.contrib import admin 
from rest_framework_jwt.views import obtain_jwt_token 
from rest_framework_jwt.views import refresh_jwt_token 
from rest_framework_jwt.views import verify_jwt_token 

urlpatterns = [ 
    url(r'^$', IndexView.as_view(), name='index'), 
    url(r'^api/api-token-auth/', obtain_jwt_token), 
    url(r'^api/api-token-verify/', verify_jwt_token), 
    url(r'^api/api-token-refresh/', refresh_jwt_token), 

] 

AngularJS POST:

$scope.login = function() { 

      $http.post('api/api-token-auth/', 
       { 
       'username': $scope.username, 
       'password': $scope.password 
       }) 
       .success(function (response) { 
       $scope.logged = true; 
       $scope.jwt = response.token; 
       console.log(response.token); 
       store.set('token', response.token); 
       },function (response) { 
       $scope.logged = false; 
       console.log(response); 
       }); 
     } 

在郵差

+0

您可以發佈您views.py,serializers.py,models.py和settings.py(DRF的配置部分) ,並且您在客戶端收到的錯誤消息形成響應? HTTP 405錯誤意味着方法不允許,所以它可能是一個認證/授權問題集的默認設置或某處。無論哪種方式,獲取更多信息都有助於調試。 –

+0

當請求使其成爲視圖但沒有方法處理程序時,您通常會在DRF中看到405。我會檢查以確保請求將轉到您認爲是通過在自定義視圖的URL conf中替換它的視圖。我發現您的網址模式最後缺少「$」,這可能會導致請求出現意外情況。 – jarcoal

回答

0
做POST時,我得到了同樣的錯誤

我發現了這個問題,在我的路線中,我有這個AngularJS路線:

url(r'^(?P<path>.*)/$', IndexView.as_view()), 

所以我改爲:

url(r'^/$', IndexView.as_view()), 

和它的工作