Django Tastypie POST方法总是返回401,GET方法正常

0 投票
1 回答
715 浏览
提问于 2025-04-28 02:51

这是我的代码

     class termTypeResource(ModelResource):
        class Meta:
           queryset = TermType.objects.all()
           resource_name = 'gettermtypes'
           allowed_methods = ['get','post']

每当我像下面这样使用curl来请求这个API时

 curl --dump-header - -H "Content-Type: application/json" -X POST --data {"termtype":"LONG"}' --apiURL--

它总是返回这个结果(注意:我不想为这个API的POST请求添加认证或授权)

HTTP/1.0 401 UNAUTHORIZED
Date: Fri, 17 Oct 2014 12:05:49 GMT
Server: WSGIServer/0.1 Python/2.7.6
X-Frame-Options: SAMEORIGIN
Content-Type: text/html; charset=utf-8
暂无标签

1 个回答

1

来自tastypie教程的内容:

不过,如果你尝试对这个资源发送POST、PUT或DELETE请求,你会发现会出现“401 Unauthorized”(未授权)错误。为了安全起见,Tastypie默认设置了一个授权类(也就是“你被允许做什么”)为只读授权。这意味着在网上公开这个资源是安全的,但也阻止了我们进行POST、PUT和DELETE操作。现在我们来开启这些功能:

authorization = Authorization()

但是你把这个设置成了 Authorization =,这是不对的。而且,正如教程中提到的,POST等操作如果没有身份验证是很不安全的。

撰写回答