Maison  >  Article  >  interface Web  >  Résoudre le problème de Spring MVC renvoyant les données JSON à Ajax et signalant l'erreur parseerror

Résoudre le problème de Spring MVC renvoyant les données JSON à Ajax et signalant l'erreur parseerror

亚连
亚连original
2018-05-22 15:28:401781parcourir

Récemment, lors de l'utilisation d'ajax pour recevoir des données json de spring mvc, une erreur d'analyse se produit toujours. Dans cet article, je vais partager avec vous la solution au problème d'analyse lorsque spring mvc renvoie des données json à des amis ajax qui en ont besoin. peut s'y référer

Récemment, lors de l'utilisation d'ajax pour recevoir des données json de spring mvc, une erreur d'analyse se produit toujours. Le code source de l'erreur est le suivant :

Front-end :

<.>

$.ajax({ 
      type: &#39;POST&#39;, 
      url: "groupFunctionEdit", 
      dataType: &#39;json&#39;, 
      contentType: "application/json", 
      data: JSON.stringify(functiondata), 
      success: function(data){ 
        alert(&#39;数据加载成功&#39;+data.msg); 
      }, 
      error: function(xhr, type){ 
        alert(&#39;数据加载失败&#39;); 
        console.log(type); 
      }

Contrôleur backend :

@RequestMapping("/groupFunctionEdit")   
  public @ResponseBody Object groupFunctionEdit(@RequestBody List<YyGroupFunction> yyGroupFunctionList) throws JsonProcessingException{ 
     
    return "success"; 
  }

Interrogez les données et trouvez le réponse suivante :

Lorsque vous utilisez un type simple tel que String pour recevoir des données, il n'est pas nécessaire d'utiliser l'annotation @RequestBody.

Ici, vous devez utiliser spring mvc pour traiter le package jar dépendant de json : jackson.databind.jar

Solution :

Le front-end n'a pas besoin d'être modifié, il est en arrière-plan Mapper les données requises et les convertir en type String :

@RequestMapping("/groupFunctionEdit")   
  public @ResponseBody Object groupFunctionEdit(@RequestBody List<YyGroupFunction> yyGroupFunctionList) throws JsonProcessingException{ 
     Map<String,Object> map = new HashMap<String,Object>(); 
     map.put("msg", "success"); 
     ObjectMapper mapper = new ObjectMapper(); 
     String msg = mapper.writeValueAsString(map); 
    return msg; 
  }

Les données passées au premier plan la fin devient :

{"msg":"success"}

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

Articles connexes :

Ajax coopère avec node js multer pour implémenter la fonction de téléchargement de fichiers

Principe du cross-domain Ajax request (Tutoriel texte de la figure)

Méthode de jQuery Validator pour vérifier la soumission du formulaire Ajax et la méthode de transmission des paramètres Ajax (Tutoriel graphique)

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