到目前为止,我没有对 Tastypie 使用身份验证,但是当我在浏览器中访问 url 时,我能够看到内容。
http://localhost:8000/live/api/update/?format=json
但我试图通过 jquery ajax 调用在页面中获取这些数据,
$.post('/live/api/update/?format=json',
{type:'GET',dataType: "json", processData: false,
contentType: "application/json",userid:$('#index').val()},function(devicelist){
.....
}
在浏览器萤火虫控制台中,我看到了 401
注意:从哈里斯的回答中,我能够解决这个问题,但我想知道它为什么有效
当我使用
$.ajax({ type: "POST", url: url, data: data, success: success, dataType: dataType });
它正在工作(状态:202),而当我使用
$.post('/live/api/update/?format=json',
{type:'GET',dataType: "json", processData: false,
contentType: "application/json",userid:$('#index').val()},function(devicelist){
.....
}
这不起作用。实际上我将我的 PHP 代码转移到了 Django,当我使用 PHP 时,上面的代码用于处理 401 错误
美味派 api 代码中没有身份验证
api.py
from tastypie.resources import ModelResource
from models import Update
from tastypie.serializers import Serializer
import urlparse
class urlencodeSerializer(Serializer):
formats = ['json', 'jsonp', 'xml', 'yaml', 'html', 'plist', 'urlencode']
....
class UpdateResource(ModelResource):
class Meta :
queryset = Update.objects.all()
resource_name = 'update'
filtering = {'imei' : ALL }
#authentication = DjangoCookieBasicAuthentication()
serializer = urlencodeSerializer() # IMPORTANT
allowed_methods = ['get','post']