我正在尝试使用django -rest框架访问django服务器,使用以下服务:
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看起来如下:
from rest_framework.routers import DefaultRouter
from .views import UserViewSet
router = DefaultRouter()
router.register(prefix='users', viewset=UserViewSet)
urlpatterns = router.urls我的views.py文件如下:
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发布于 2017-02-05 06:12:49
我设法解决了这个问题,将@Bipul建议的https://stackoverflow.com/a/42044910/7210105 (上面)与修改$resource中的链接结合起来
"http://local/path/**/users/:username/“
我从链接中删除了http://local/path,然后403个被禁止的错误消失了。
发布于 2017-02-04 19:54:51
我认为403被禁止来浏览器阻止跨原点的请求。您需要通过设置适当的头来允许API服务器上的CORS。
您可以查找https://github.com/ottoyiu/django-cors-headers
为此,您需要添加您已安装的应用程序。
'corsheaders'开始试一试。检查文档中的微调设置。
CORS_ORIGIN_ALLOW_ALL = True编辑
此外,您还需要在您的中间件中添加此内容。
'corsheaders.middleware.CorsMiddleware',https://stackoverflow.com/questions/42044530
复制相似问题