2017-06-27 3 views
0

Je suis en train d'utiliser une chaîne JSON pour faire une insertion dans une base de données. J'utilise AngularJS et Coldfusion pour le faire.AngularJS - Caractères spéciaux dans la demande JSON et Coldfusion

Merci à une forme que je récupère les données, je crée un objet au service (contrôleur) et grâce à une usine que je fais un http.post $. Mon problème concerne la chaîne qui lui est envoyé: la chaîne contient des caractères spéciaux (par exemple « & » et je ne sais pas comment traiter ce genre de question

Voici un exemple de la chaîne envoyée.

jsStruct={"LASTNAME":"Nämé","FIRSTN%a£öME":"TestFirstName","PHONENUMBER":48484488,"EMAIL":"[email protected]","COMPANY":"Test & Comp"} 

Mon contrôleur:

app.controller('ctrlAddContacts', function ($scope, ContactService){ 

    // WHEN SUBMITTING THE FORM -> SEND THE DATA STRING 
    $scope.submitForm = function(contact){ 
     if($scope.ContactForm.$valid){ 

      // CALL THE FACTORY -> SEND THE DATA STRING 
      ContactService.addNewPerson(contact).success(function(Person){ 
       $scope.ContactForm.$setPristine(); 
       $scope.contact= Person;  

      });  
     } 
    } 
}); 

Mon usine:

app.factory('ContactService', function($http){ 

    var factory={}; 

    factory.addNewPerson=function(objContact){ 

     return $http.post('http://myapp/contacts.cfc?method=addNewPerson&jsStruct=' + JSON.stringify(objContact)) 
    }; 

    return factory; 

}) 

Dans mon composant Coldfusion "contacts.cfc":

<cffunction name="addNewPerson" access="remote" returnformat="JSON" output="no">  
     <cfargument name="jsStruct" type="string" required="true"> 
     <cfset var cfStruct=DeserializeJSON(jsStruct)> 

     .................. 

    </cffunction> 

cette erreur j'obtenir sur le serveur parce que dans ma chaîne il y a "ENTREPRISE": "Test & Comp »:

JSON parsing failure: Unexpected end of JSON string 

Pourriez-vous s'il vous plaît m'aider à résoudre ce problème et empêcher les caractères spéciaux utilisés par Coldfusion et Oracle comme &, #, ', "et d'autres?

Merci d'avance.

+0

Quelle est la question que vous face à caractère spécial.? – Ved

+0

J'ai ajouté quelques informations sur mon problème. Sur le serveur pendant le traitement que j'obtenir l'erreur: ' 'échec parsing JSON: fin inattendue de JSON string' parce que j'ai caractère spécial dans la chaîne (par exemple' & ') – coeurdange57

+0

Je viens de tester votre JSON. Je l'ai analysé, mais pas d'erreur. – Ved

Répondre

-1

En fait, nous avons demandé au DBA de changer le DSN utiliser des pilotes différents et le problème a été résolu

0

Je viens d'essayer votre analyse JSON. Cela a fonctionné pour moi. Je suppose que le JSON parser utilisé sur la fin du serveur ne prend pas en charge char spécial.

var jsStruct={"LASTNAME":"Nämé","FIRSTN%a£öME":"TestFirstName","PHONENUMBER":48484488,"EMAIL":"[email protected]","COMPANY":"Test & Comp"}; 
 

 
var parsedJSON = JSON.parse(JSON.stringify(jsStruct)); 
 
console.log(parsedJSON,"parsedJSON")

Edit 1:

Selon votre message d'erreur: échec parsing JSON: fin inattendue de chaîne JSON

Vous essayez d'analyser une chaîne JSON, et la chaîne n'est pas JSON. L'erreur n'est pas pour le caractère spécial.