我已经对此进行了彻底的测试,但我不知道为什么会这样做,所以我想知道是否有人可以解释......
当我尝试使用变量而不是字符串时,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 调用 View 时
即使我不返回 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')
最佳答案
在设置中打开 DEBUG,并进行回溯可能会很有用。
就墙而言,我可能会假设在此检查之前 (if(errors == True):) 您可能忘记用初始值初始化错误,因此它会抛出 NameError...但这只是一个假设。
UPD:抱歉,我忘记了 ajax 部分 - +1 到 waitinforatrain's评论
关于jquery - 为什么 json.dumps() 在使用变量时会抛出 500 内部服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6539825/