2
请帮忙。如何以json格式返回数据?
表单。当您将它发送到下一页时,由控制器加载:
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.template import loader, RequestContext
from reviewsFancy.models import ReviewsFancy
from django.cong import settings
import json
def reviewsFancyCall(request):
if request.method == "POST" and request.is_ajax():
c = ReviewsFancy(
title=request.POST.get("title", ""),
name=request.POST.get("name", ""),
message=request.POST.get("message", ""),
)
c.save()
with open(settings.BASE_DIR + 'qwe.txt', "wb") as f:
f.write(bytes('ok', 'UTF-8'))
data = [['result', 'ok']]
return json.dumps(data)
else:
with open(settings.BASE_DIR + 'qwe.txt', "wb") as f:
f.write(bytes('no', 'UTF-8'))
data = [['result', 'no']]
return json.dumps(data)
因此,所有操作都按预期工作。数据被成功写入表中。但我会检查返回的数据如下:
..................
$.ajax({
url: "/reviewsFancy/call/",
type: 'POST',
dataType: "json",
data: {
"title": title.val(),
"name": name.val(),
"message": message.val(),
},
error: function() {
console.log('err');
alert('error');
},
success: function(data) {
console.log('succ');
console.log(data['result']);
title.val('');
name.val('');
message.val('');
$('.reviews_fancy').toggleClass('hide');
alert('success');
},
...............
,但在控制台中我得到的错误:
POST http://127.0.0.1:8000/reviewsFancy/call/ 500 (INTERNAL SERVER ERROR) jquery.2.min.js:6
XHR finished loading: "http://127.0.0.1:8000/reviewsFancy/call/". jquery.2.min.js:6
err
您是否为返回数据设置了MIME类型? – fledgling
你会请检查后端吗?在调试模式下运行DJango并检查它是否给出了一些错误? – Nilesh