views.py:
def get_accounts( request ):
if request.is_ajax():
res = ["foo","bar"]
json = simplejson.dumps(res)
return HttpResponse(json, mimetype='application/json')
return HttpResponseNotFound
urls.py:
( r'^get_accounts/$', 'get_accounts'),
client.html:
$.get('/django/backoffice/bopanel/get_accounts',{'acc':$('.nr').text().replace(/^\s+||\s+$/g,'')}, function(data) {
alert(data[0]);
});
我很惊讶地收到一个内容提示框:
"["
什么意思是我得到了字符串而不是数组,这对我来说非常奇怪,绝对不是我所期待的。
在萤火虫中我看到两个后续的GET请求:
GET http://127.0.0.1:8000/django/backoffice/bopanel/...nts?acc=17114%2FF01055%2FTP%0A%09%09++++++++++++
301 MOVED PERMANENTLY
24ms
GET http://127.0.0.1:8000/django/backoffice/bopanel/...ts/?acc=17114%2FF01055%2FTP%0A%09%09++++++++++++
200 OK
16ms
我不明白为什么我会收到两个请求以及为什么第一个请求有301状态。我不明白这是如何使json显示为字符串。有什么帮助吗?
答案 0 :(得分:1)
我不明白为什么我会收到两个请求以及为什么第一个请求有301状态。
Django默认情况下会在没有任何网址的情况下为任何网址添加斜杠(请参阅common middleware)。
您想使用content_type
代替mimetype
,即:
return http.HttpResponse(json.dumps(res), content_type='application/json')