Je l'ai testé à fond et je ne sais pas pourquoi il fait cela, donc je me demandais si quelqu'un pouvait expliquer ...Pourquoi json.dumps() lance-t-il une erreur interne du serveur 500 lors de l'utilisation de variables?
json.dumps() lance une erreur 500 interne du serveur lorsque j'essaie de utilisez une variable au lieu d'une chaîne.
Par exemple:
error = 'Login Failed: Your username or password is incorrect.'
test = json.dumps({'form': error})
renvoie une erreur 500 interne du serveur lors d'une tentative de revenir par jQuery.ajax
Cependant,
test = json.dumps({'form': 'Login Failed: Your username or password is incorrect.'})
ne jetterai pas une erreur 500 interne du serveur . Je l'ai testé ceci à fond avec des guillemets simples, guillemets doubles, mise en forme différente, etc et tous les points à json.dumps()
Pour une raison quelconque, ce ne se produit que lorsque vous appelez la vue à travers jQuery.ajax
même si je ne retourne pas json.dump() et renvoie un objet json normal, il génère toujours une erreur 500, ce qui explique pourquoi j'ai conclu qu'il s'agit de json.dumps() et non de l'appel .ajax **
Voici un extrait de code supplémentaire où j'utilise ceci: Pour des raisons inconnues .. cela va lancer une erreur en appelant ce pa particulier ge par jQuery.ajax()
Oui .. même si la variable 'test' n'est pas retournée.
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')
Hey, si vous regardez l'erreur 500 dans la console Firebug et cliquez sur l'onglet « HTML », il vous montrera la sortie Django, et alors vous pouvez obtenir l'erreur spécifique. – bcoughlan
idk si quelque chose me manque .. mais la fonction "inspecter l'élément" sur chrome ne montre rien et voici un lien vers la sortie firebug .. http://snapplr.com/k1me P.S. J'ai changé 'testing_this' en '1234567' dans mon exemple de capture d'écran – Chris
Ne pensez pas que Chrome peut le faire. Dans l'onglet "Console" il montre les requêtes AJAX, et si vous cliquez sur le "+" à côté de la requête, il y aura un onglet "HTML" qui vous montrera la sortie. – bcoughlan