【问题标题】:Why does json.dumps() throw a 500 internal server error when using variables?为什么 json.dumps() 在使用变量时会抛出 500 内部服务器错误?
【发布时间】: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”选项卡显示输出。

标签: jquery python django json


【解决方案1】:

在设置中开启 DEBUG,并进行回溯可能会有用。

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

UPD:抱歉 ajax 部分让我忘记了 - +1 到 waitinforatrain's 评论

【讨论】:

  • 是的..错误在幕后,所以调试不会出现..在评论中粘贴了萤火虫的东西。我唯一注意到的是“数据集未定义 {}”,但我不确定这是否来自 ajax 调用
  • 您要检查的不是 HTML - 尝试网络选项卡 > 选择请求 > 内容选项卡 - 必须有 Django 调试页面的来源。
  • 哇..我在这方面做得不好...我得到了 500,因为从未设置过错误。我的 if 语句正在捕捉它。我认为其他事情搞砸了..这似乎太奇怪了。
  • 您在“错误”方面是部分正确的,除了没有被引用的错误..所以我会给你这个问题。 :p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
  • 2017-04-15
相关资源
最近更新 更多