Maison  >  Article  >  interface Web  >  Comment implémenter Ajax pour envoyer une requête sans succès

Comment implémenter Ajax pour envoyer une requête sans succès

php中世界最好的语言
php中世界最好的语言original
2018-03-30 15:30:44989parcourir

Cette fois, je vais vous montrer comment implémenter Ajax pour envoyer des requêtes mais ne pas réussir, et quelles sont les précautions pour implémenter Ajax pour envoyer des requêtes mais ne pas réussir. Ce qui suit est un cas pratique, jetons un coup d'oeil.

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";
}

Cause : Les données json renvoyées par l'arrière-plan sont une pure chaîne tapez object, lorsque l'attribut front-end dataType est 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, donc le la méthode correspondant à l’erreur sera exécutée.

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" numberString, lorsque l'attribut dataType frontal est défini sur json, la méthode de réussite peut être saisie normalement. La raison est inconnue.

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Utiliser Ajax et les formulaires pour mettre en œuvre les fonctions requises pour les utilisateurs enregistrés

Étapes pour mettre en œuvre la connexion autorisée à la page Web WeChat en utilisant ajax (Avec code)

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