Maison > interface Web > js tutoriel > le corps du texte

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

亚连
Libérer: 2018-05-21 16:28:38
original
3001 Les gens l'ont consulté

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'
   });
 }
});
Copier après la connexion

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";
}
Copier après la connexion

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'
     });
   }
});
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal