我的代码返回以下JSON:
{"code_retour":-1,"texte_retour":"Le lien de parent\u00e9 est inconnu"}
在我的JS代码中,我有这个条件返回true
:
if (reponse.code_retour != 0) {
这个返回false
:
if (reponse.code_retour == -1) {
我缺少一些东西。 为什么两者都不归实?
以下是我的代码以获取更多详细信息:
$.ajax({
type: 'POST',
url: $('#url_for_ajax').val()+'/post_formulaire_responsables_personne',
data: $('#form_responsable').serialize(),
success: function(reponse) {
// reset des erreurs
$('#form_responsable :input').parent().parent().removeClass('has-error has-feedback');
$('#form_responsable :input').nextAll('span,small').remove();
$("#reponse-serveur").hide();
console.log(reponse);
// il y a des erreurs dans le formulaire
if (reponse.code_retour == -1) {
alert('I am here');
var arr = reponse.texte_retour;
if (!jQuery.isEmptyObject(arr)){
var errorString = '<ul>';
$.each(arr, function(index, value)
{
if (value.length != 0) {errorString += '<li>' + value + '</li>';}
$(':input[name="' + index + '"]').parent().parent().addClass('has-error has-feedback');
$(':input[name="' + index + '"]').after('<span class="glyphicon glyphicon-warning-sign form-control-feedback" aria-hidden="true"></span><small class="text-danger">'+value+'</small>');
});
errorString += '</ul>';
}
$("#reponse-serveur").html(errorString);
$("#reponse-serveur").show();
} else {
答案 0 :(得分:2)
两种情况都返回true
。 Here is an example。也许价值不是你所期望的那样?
如果您使用的是Chrome,则可以使用内置的调试工具查看正在进行的操作。
在这种情况下,我会尝试弄清楚reponse
的真实值是什么,当您尝试评估它时。有几种方法可以做到这一点:
reponse
:您应该检查以确保您的回复符合您的预期。试试这些:
console.log()
强> 这允许您将消息放入浏览器的控制台。在这种情况下,console.log(reponse);
应该没问题。从这里你会看到这样的东西:
在这里,您可以看到reponse.code_retour
实际上是-1
(如示例中所示)还是其他内容。
debugger
关键字您可以简单地在代码中的某处放置debugger;
一词,如果您有调试工具(如前面链接中所述),请打开它,暂停代码。在这里,您可以看到reponse.code_retour
的真正价值。
断点很酷。
他们让你基本上&#34;暂停时间&#34;通过在特定时刻停止代码,您可以随意移动。
您可以使用以下按钮跳过,跳转到,然后跳出功能范围:。所有这些都可能在之前的文件中得到了解释。
这些本质上是断点:
您还可以添加&#34;断点&#34;使用浏览器内置的调试工具。只需转到“来源”选项卡,然后单击要停止的行号:
您应该首先检查您发送到服务器的内容!代码可能没有按照您的预期进行操作。
为此,我建议将您传递的所有内容({1}})拉出来,并将其存储在单独的变量中(例如$.ajax
)。然后,您可以使用之前的方法之一来确保发送到服务器的数据(ajaxConfig
)是您希望发送的数据。
示例代码:
ajaxConfig.data