为什么json.dumps()在使用变量时会抛出500内部服务器错误?

时间:2011-06-30 19:07:33

标签: jquery python django json

我已经彻底测试了这个,我不知道为什么会这样做,所以我想知道是否有人可以解释......

当我尝试使用变量而不是字符串时,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')

1 个答案:

答案 0 :(得分:0)

在设置中打开DEBUG并进行回溯可能很有用。

就在墙上,我可能会假设在此检查之前(if(errors == True):)你可能忘记用初始值初始化错误,因此抛出NameError ......但这只是一个假设。

UPD:抱歉,ajax部分让我大吃一惊 - +1 waitinforatrain's评论