首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >403禁止通过DRF访问API

403禁止通过DRF访问API
EN

Stack Overflow用户
提问于 2017-02-04 19:16:19
回答 2查看 2.5K关注 0票数 1

我正在尝试使用django -rest框架访问django服务器,使用以下服务:

代码语言:javascript
运行
复制
myapp.factory("GetData", ["$resource",function($resource) {
   return $resource(
      "http://local/path/**/users/:username/",
      {},
      {
        "query": {
        method: "GET",
        isArray: true,
        headers:{
          "Content-Type":"application/json"
        }
      }
    },
    {
     stripTrailingSlashes:false
    }
   );
}]);

当我把URL放在浏览器中时,我得到了想要的输出,但问题是,当我尝试通过角访问时,在我的控制台中,我得到了一个403禁止的错误。有人能跟我解释一下是什么原因造成的吗。以及我如何解决这个问题。

我的url.py看起来如下:

代码语言:javascript
运行
复制
from rest_framework.routers import DefaultRouter
from .views import UserViewSet

router = DefaultRouter()
router.register(prefix='users', viewset=UserViewSet)

urlpatterns = router.urls

我的views.py文件如下:

代码语言:javascript
运行
复制
 from django.shortcuts import render
 from django.http import HttpResponse
 from rest_framework import viewsets
 from .models import users
 from .serializers import UserSerializer

 class UserViewSet(viewsets.ModelViewSet):
    queryset = users.objects.all()
    serializer_class = UserSerializer
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-05 06:12:49

我设法解决了这个问题,将@Bipul建议的https://stackoverflow.com/a/42044910/7210105 (上面)与修改$resource中的链接结合起来

"http://local/path/**/users/:username/“

我从链接中删除了http://local/path,然后403个被禁止的错误消失了。

票数 0
EN

Stack Overflow用户

发布于 2017-02-04 19:54:51

我认为403被禁止来浏览器阻止跨原点的请求。您需要通过设置适当的头来允许API服务器上的CORS。

您可以查找https://github.com/ottoyiu/django-cors-headers

为此,您需要添加您已安装的应用程序。

代码语言:javascript
运行
复制
'corsheaders'

开始试一试。检查文档中的微调设置。

代码语言:javascript
运行
复制
CORS_ORIGIN_ALLOW_ALL = True

编辑

此外,您还需要在您的中间件中添加此内容。

代码语言:javascript
运行
复制
'corsheaders.middleware.CorsMiddleware',
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42044530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档