Ich baue eine Website mit Django und Django_rest_framework. Ich testete den Rest api mit httpie.jQuery bekommen Anfrage mit JSON Körper zu einem REST api
Aber wenn ich versuche, den gleichen Anruf mit jQuery zu tun, erhalte ich einen Fehler.
jquery.min.js:4 GET http://localhost:8000/api/recentposts/?{%22last_id%22:1650} 500 (Internal Server Error)
Der Anruf mit httpie ist die folgende
http get localhost:8000/api/recentposts/ last_id=1650
oder
http get localhost:8000/api/recentposts/ < recent.json
----------------------------
content of recent.json
{
"last_id": 1650
}
und ich die richtigen Ergebnisse zu erzielen.
während mit jquery habe ich versucht,
$.ajax({
type: 'GET',
url: 'http://localhost:8000/api/recentposts/',
contentType: 'application/json',
dataType: 'json',
processData: false,
data: JSON.stringify({ last_id : 1650 }),
success: function(resp){
console.log(resp);
}
});
Gibt es etwas falsch mit dem Anruf? Ich habe versucht mit .get anstelle von .ajax, und viele verschiedene Möglichkeiten, die JSON zu übergeben, aber ich habe noch nichts gelöst.
durch die Art und Weise dies ist die Ansicht, dass
class RecentPostViewSet(viewsets.ReadOnlyModelViewSet):
'''
ViewSet that displays recent posts after it post id
It needs a JSON file like the following
{
"last_id" : int
}
'''
queryset = Post.objects.all()
serializer_class = PostSerializer
def list(self, request):
recent_feed = Post.objects.filter(hidden=False).order_by('-pub_date').filter(pk__gt=request.data['last_id'])
log.warning("incoming request")
log.warning(dir(request))
log.warning(request.data)
log.warning(request.query_params)
serializer = self.get_serializer(recent_feed, many=True)
return Response(serializer.data)
Ist der beacause jQuery bekommt Aufruf der Lage genannt wird, ist nicht eine GET-Anforderung mit einem json Körper zu tun? Oder ich habe etwas falsch gemacht? Durch die Art und Weise bin ich mit jQuery 3.1.1
Was passiert, wenn Sie die '' contentType' und processData' Optionen entfernen, und tun nur 'Daten: {last_id: 1650},' – adeneo
Ein GET hat keinen Körper. ..es verwendet nur die URL. Daher gibt es auch keinen 'contentType' – charlietfl
Es gibt immer noch dasselbe Ergebnis. – WisdomPill