2017-08-15 119 views
0

我有一个index.php页面,它执行POST请求。发布请求后,我创建一个查询字符串如何从php重定向时隐藏查询参数

PHP代码片段: - 的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); 

这指向角的js路由文件

角JS - > 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 } 
}); 

现在我想在查询参数检索值并将其存储在$范围变量,这样我可以自动填充文本字段someView.html我在someCtrl.js用的代码是:

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(); 
    } 
} 

我的问题是:如何隐藏FIRST_NAME和电子邮件中的网址,以便它是不可见的最终用户,但尚未有它以某种方式让我可以访问它someCtrl.js

我想的是,用户可以看到:/一些路由

我的代码见:例如网址:/一些路线? & [email protected] & FIRST_NAME =测试

我想实际的URL隐藏了PARAMS电子邮件和FIRST_NAME - 这样用户就看不到信息和 - 我可以从我的代码中访问它

我该如何做到这一点?

+0

您不能在GET调用中隐藏URL参数。你需要使用POST调用。 – MightyMouse

+0

在这种情况下,我如何添加一个通话? –

回答

0

如果您仅使用两个参数(名称和电子邮件)进行POST调用并且想要隐藏参数,请使用HTML页面而不是PHP表单,并在用户提交时使用通过$http服务在您的AngularJS控制器中发布申请。

保持摇摆!