Maison >interface Web >js tutoriel >Comment implémenter Ajax pour envoyer une requête sans succès
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 :
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!