2017-08-15 1 views
0

J'ai une page index.php, qui effectue une requête POST. Après la demande de poste que je crée une chaîne de requêteComment masquer les paramètres de requête lors de la redirection à partir de php

code PHP extrait: - index.php

// example url : /some-route?&[email protected]&first_name=test 
$url: "/some-route?&email=".trim($_POST["email"])."&first_name=" . 
trim($_POST["firstName"]); 
header('Location: '.$url); 

Ceci est indiqué dans le fichier de routage js angulaire

js angulaire -> stateProviderfile -> states.js

 $stateProvider 
    .state("some-route", { 
    url: '/some-route?isSomeApp', 
    templateUrl : 'app/components/application/some- 
        information/someView.html', 
    controller : 'someCtrl', 
    params: { isSomeApp: null}, 
    data: { public: true } 
}); 

maintenant, je veux récupérer les valeurs dans le paramètre de requête et le stocker dans la variable de portée de $ afin que je puisse remplir automatiquement les champs de texte dans someView.html code que j'utilise dans someCtrl.js est:

enter code here 
$scope.parse = function(){ 
    if ($scope.params["first_name"] != undefined) { 
     $scope.firstname = $scope.params["first_name"]; 
    } 


    if ($scope.params["email"] != undefined) { 
     $scope.email = $scope.params["email"]; 
    } 
} 

// call the above function in init() in someCtrl.js 
$scope.init = function(){ 
    $scope.params = $location.search(); 
    if (Object.keys($scope.params).length > 0) { 
    $scope.parseParams(); 
    } 
} 

Ma question est: Comment puis-je masquer prenom et email dans l'URL afin qu'il ne soit pas visible à l'utilisateur final, mais encore ont en quelque sorte pour que je peut y accéder someCtrl.js

Je veux que les utilisateurs voient:/some route

Mon code voit: exemple url:/une route? & [email protected] & prenom = test

Je veux URL réelle d'avoir caché params email et prenom - afin que les utilisateurs ne voient pas cette information et - je peux accéder à partir de mon code

Comment puis-je y parvenir?

+0

Vous ne pouvez pas masquer les paramètres d'URL dans un appel GET. Vous devez utiliser un appel POST pour cela. – MightyMouse

+0

comment puis-je ajouter un post-appel dans ce cas? –

Répondre

0

Si vous effectuez un appel POST avec seulement deux paramètres (Nom et E-mail) et que vous souhaitez masquer les paramètres, utilisez une page HTML au lieu de PHP Fichier avec un formulaire et lorsque l'utilisateur le soumet, faites le POST pétition dans votre contrôleur AngularJS avec le service $http.

Continuez à bascule!