2017-09-18 1 views
0

J'essaie donc d'envoyer des données qui correspondent au modèle côté serveur. Mon code js est la suivante:Comment supprimer des guillemets supplémentaires d'un JSON avant de l'envoyer à un serveur dans AngularJS

vm.answers={} 
vm.formData = {answers:vm.answers}; 

vm.continue=function(){ 
     $location.path('profiles') 
     if(user=='employer'){ 
      $scope.json = angular.toJson(vm.formData); 
     questionService.postPostingAnswers($scope.json).then(function (data) { 
     location.path("/profiles") 
     console.log(data) 
     }, 
     function() { 
      alert("Error processing your request") 
     }); } 

     else{ 
      $scope.json = angular.toJson(vm.formData); 
      questionService.postProfileAnswers($scope.json).then(function (data) { 
       location.path("/profies") 
     console.log(data) 
     }, 
     function() { 
      alert("Error processing your request") 
     }); 
     } 
     } 

Mon problème est que quand je l'utilise angular.toJson il stringifies les accolades de formData trop que je ne veux. Mon serveur attend un corps comme:

{ 
    "answers": { 
    "Q1": "A2", 
    "Q2": "A4" 
    } 
} 

Et ce que je vous envoie avec mon code actuel est:

"{ 
     "answers":{ 
     "Q1":"A2", 
     "Q2":"A4" 
     } 
    }" 

Que dois-je faire pour résoudre ce problème? Merci beaucoup :)

+0

* Si on envoie vm.formData * directement sans '' 'angular.toJson()' '' œuvres? – Sonicd300

+0

Oui, mais mes touches de boutons radio ne sont pas des chaînes, je veux que les clés soient aussi des chaînes avec des valeurs. – BleachedAxe

+0

Votre serveur attend donc une clé citée json? – Sonicd300

Répondre

1

Solution: N'envoyez pas votre objet analysé. Juste

questionService.postProfileAnswers(vm.formData) 

c'est bon. Si cela ne fonctionne pas, veuillez passer le code de fonction postProfileAnswers.

MISE À JOUR: s'il vous plaît, faites un plnkr ou vérifiez simplement votre console ou partagez une capture d'écran.

Est très étrange, àJson ne pas ajouter "". S'il vous plaît vérifiez si votre problème n'est pas un autre et "" sont pour debuggin propose.

Aussi, si vous pensez toujours toJson ajouter "", essayez supprimer premier et le dernier caractère avec

$scope.json = $scope.json.slice(1, -1); 
+0

Le problème est que mon serveur attend une clé citée json. J'ai déjà essayé mais ça n'a pas marché. – BleachedAxe

+0

Hey pablo, ma console me donne ça après la tranche. "Réponses": {"Q1": "A2", "Q2": "A3", "Q3": "A6", "Q6": "A15", "Q7": "A17", "Q9" : "A19"} " au lieu de supprimer les guillemets, il a supprimé les accolades. Quel pourrait être le problème? – BleachedAxe

+0

Pouvez-vous accéder à votre serveur? Si vous le pouvez, vérifiez les données reçues. Reviwiewing votre poste, vous recevez des données correctes: -> { "réponses": { "Q1": "A2", "Q2": "A4" } } <- rigth? Ou vous avez besoin d'un autre? Si un autre, s'il vous plaît coller le bon json pour votre serveur. – pablorsk