Maison  >  Article  >  interface Web  >  Solution à la requête Ajax envoyée avec succès mais sans succès (tutoriel image et texte)

Solution à la requête Ajax envoyée avec succès mais sans succès (tutoriel image et texte)

亚连
亚连original
2018-05-21 16:28:382935parcourir

Ci-dessous, je vais partager avec vous une solution au problème selon lequel la requête Ajax est envoyée avec succès mais n'entre pas dans le succès. Elle a une bonne valeur de référence et j'espère qu'elle sera utile à tout le monde.

1. Description de la situation : ajax a été envoyé avec succès, l'arrière-plan a également répondu avec succès à la demande et a renvoyé les données json. Vous pouvez également voir la réponse json par. surveille la demande via Chrome Data, mais elle n'entre pas dans la méthode de réussite, mais passe à la méthode d'erreur

Front end :

$.ajax({
 type : "get",
 data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()},
 url : "${ctp}/ViewOperate/ShowViewSql",
 dataType : "json",
 success : function(data){
   console.log(data);
   layer.alert(data,{
     skin: 'layui-layer-molv'
   });
 }
 error : function(data){
   layer.alert("进入了error方法",{
     skin: 'layui-layer-molv'
   });
 }
});

Backend :

@RequestMapping(value="/ShowViewSql",method=RequestMethod.GET)
@ResponseBody
public String showCreateViewSql(@RequestParam(value="dbId",required=false)Integer dbId,
   @RequestParam(value="viewId",required=false)Integer viewId) {
 return "abc";
}

Raison :Lorsque les données json renvoyées par l'arrière-plan sont un objet de type String pur, une fois l'attribut dataType frontal défini sur json, il sera considéré que le format de données json converti par l'objet String n'est pas un format json standard, il sera donc exécuté La méthode correspondant à l'erreur.

Solution : Pas besoin de changer le backend, définissez simplement l'attribut dataType dans la requête ajax frontale sur text

$.ajax({
   type : "get",
   data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()},
   url : "${ctp}/ViewOperate/ShowViewSql",
   dataType : "text",
   success : function(data){
     console.log(data);
     layer.alert(data,{
       skin: 'layui-layer-molv'
     });
   }
   error : function(data){
     layer.alert("进入了error方法",{
       skin: 'layui-layer-molv'
     });
   }
});

Cas particulier : Lorsque le numéro json renvoyé par le backend est similaire à "1", "2", "22", "232123", "-1", "232123.44" est une chaîne numérique, et lorsque l'attribut dataType frontal est défini sur json, la méthode de réussite peut être saisie normalement. La raison est inconnue.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Interaction entre les données Struts2 et Ajax (tutoriel graphique)

Chargement Pull-up écrit en ajax natif Exemple (tutoriel graphique)

Requête ajax du framework MUi Interface WebService instance_AJAX liée

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn