Django Tastypie POST方法总是返回401,GET方法正常
这是我的代码
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等操作如果没有身份验证是很不安全的。