【发布时间】:2017-09-19 01:31:17
【问题描述】:
当我执行 POST 以获取应该接受 POST 请求的端点中的令牌时,我得到了这个 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 发布:
$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);
});
}
在 Postman 中执行 POST 时遇到同样的错误
【问题讨论】:
-
您能否发布您的views.py、serializers.py、models.py 和settings.py(DRF 配置部分),以及您在客户端收到的错误消息形成响应? HTTP 405 错误意味着方法不允许,因此可能是身份验证/授权问题设置默认设置或某处。无论哪种方式,拥有更多信息将有助于调试它。
-
当请求进入视图但没有方法处理程序时,您通常会在 DRF 中看到 405。我将通过在 URL conf 中将其替换为自定义视图来检查以确保请求将转到您认为的视图。我发现您的 URL 模式末尾缺少“$”,这可能会导致请求转到意外视图。
标签: angularjs django http post jwt