現在、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){
.....
}
ブラウザの firebug コンソールで、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 エラーで動作していました。
Tastypie の 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']