API Django张贴网址返回403禁止错误

时间:2019-08-15 08:08:15

标签: django api django-rest-framework

我正在为我的项目使用rest-framework-api,并且尝试使用具有POST方法的端点来创建用户。但是,响应始终为403禁止->(CSRF令牌丢失或不正确。):

我已经尝试了stackoverflow上的所有方法:csrf_exempt装饰器,authentication_classes = [],CsrfExemptMixin

这些方法都不起作用...我总是得到相同的答案“ 403 Forbiddden”

PS:我正在通过POSTMAN发送请求

API:


    permission_classes = (AllowAny,) 
    authentication_classes = []
    # Serializer class to validate input and serialize output
    # Can be overridden by get_serializer_class()
    queryset = User.objects.all()
    serializer_class = UserSerializer`

网址:

api.register(r'auth/sign-up', views.UserEP, basename='userEP')

我的目的仅仅是实现一个允许任何用户创建帐户的端点。

1 个答案:

答案 0 :(得分:-1)

只需从项目设置中删除csrf中间件。这将解决问题。 以下是该中间件的实际名称:
JsonObjectRequest request = new JsonObjectRequest(Method.GET, url, JSONObject, new Response.Listener<JSONObject>() { @Override public void onResponse(JSONObject response) { //handle response here }}, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { //handle error here }}) { @Override public Map<String, String> getHeaders() throws AuthFailureError { Map<String, String> headers = new HashMap<>(); String credentials = "username:password"; String auth = "Basic " + Base64.encodeToString(credentials.getBytes(), Base64.NO_WRAP); headers.put("Content-Type", "application/json"); headers.put("Authorization", auth); return headers; } }