我已经彻底测试了这个,我不知道为什么会这样做,所以我想知道是否有人可以解释......
当我尝试使用变量而不是字符串时,json.dumps()抛出500内部服务器错误。例如:
error = 'Login Failed: Your username or password is incorrect.'
test = json.dumps({'form': error})
尝试通过jQuery.ajax 返回时,将返回500内部服务器错误
然而,
test = json.dumps({'form': 'Login Failed: Your username or password is incorrect.'})
不会抛出500内部服务器错误。我用单引号,双引号,不同的格式等彻底测试了这一点,它都指向json.dumps()
出于某种原因,这只发生在通过jQuery.ajax
调用视图时即使我没有返回json.dump()并返回一个普通的json对象,它仍然会抛出500错误,这就是为什么我'我得出结论,它是json.dumps()而不是.ajax调用**
这是一段额外的代码片段,我正在使用它:由于未知原因..这将在通过jQuery.ajax()调用此特定页面时抛出错误
是的..即使没有返回变量'test'。
elif(password == 'testing_this'):
error = 'Login Failed: Your username or password is incorrect.'
errors = True
test = json.dumps({'form': error})
#print test
date = datetime.date.today()
if(errors == True):
return HttpResponse(json.dumps({'form': 'error message here'}), mimetype='application/json')
else:
return HttpResponse(json.dumps({'result': True}), mimetype='application/json')
答案 0 :(得分:0)
在设置中打开DEBUG并进行回溯可能很有用。
就在墙上,我可能会假设在此检查之前(if(errors == True):)你可能忘记用初始值初始化错误,因此抛出NameError ......但这只是一个假设。
UPD:抱歉,ajax部分让我大吃一惊 - +1 waitinforatrain's评论