【发布时间】:2011-09-26 06:11:55
【问题描述】:
我已经彻底测试过了,我不知道为什么会这样,所以我想知道是否有人可以解释......
当我尝试使用变量而不是字符串时,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 调用 **
这是一个额外的 sn-p 代码,我正在使用它:由于未知原因.. 这将在通过 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')
【问题讨论】:
-
嘿,如果你在 Firebug 控制台中查看 500 错误并单击“HTML”选项卡,它会显示 Django 输出,然后你可以得到具体的错误。
-
idk 如果我遗漏了什么......但是 chrome 上的“检查元素”功能没有显示任何内容,这是指向萤火虫输出的链接..snapplr.com/k1me P.S.我在截图示例中将“testing_this”更改为“1234567”
-
别以为 Chrome 能做到。在“控制台”选项卡中,它显示了 AJAX 请求,如果您单击请求旁边的
+,将会有一个“HTML”选项卡显示输出。