加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS Codeigniter base_url路径设置

发布时间:2020-12-17 18:05:07 所属栏目:安全 来源:网络整理
导读:我正在使用Codeigniter 3和AngularJs创建一个网站.虽然delevolping我在codeigniter中遇到了基本URL的一些问题.我附加了我的目录struture的图像文件. 在我的主页(views / home.php)中,我添加了一个用于加载不同页面的ng-view.在这里,我使用angularjs ngRoute
我正在使用Codeigniter 3和AngularJs创建一个网站.虽然delevolping我在codeigniter中遇到了基本URL的一些问题.我附加了我的目录struture的图像文件.

enter image description here

在我的主页(views / home.php)中,我添加了一个用于加载不同页面的ng-view.在这里,我使用angularjs ngRoute进行路由.

这是我的代码.

var myApp = angular.module("myApp",["ui.bootstrap","ui.router","ngRoute"]);
 myApp.config(function($routeProvider) {
   $routeProvider
   .when("/",{
    templateUrl : "application/pages/mainpage.php"
    })
   .when("/about",{
    templateUrl : "application/pages/about.html"
    })
   .when("/services",{
    templateUrl : "application/pages/services.html"
    })
   .otherwise("/",{
    templateUrl:  "application/pages/mainpage.php"
   });
 });

在mainpage.php里面,我列出了一些驻留在json文件(datas / data.json)中的配置文件内容(虚拟内容).所有内容都列出了.在这个列表中,我放置了一个按钮,其中ng-click =“myName”

这是代码:

<div class="container" ng-controller="ListController">

<div class="row">
    <div class="col-lg-12 text-center">
        <h1>Starter Template</h1>
        <p class="lead">Complete with pre-defined file paths that you won't have to change</p>

        <div class="row">
            <div class="col-sm-6 col-md-4 wow zoomIn" data-wow-delay="0.5s" ng-repeat="items in artists">
                <div class="thumbnail">
                    <img ng-src="{{settings.base_url}}/application/assets/images/profile/{{items.shortname}}.jpg" alt="...">

                    <div class="caption">
                        <h3>{{items.name}}</h3>
                        <p>{{items.bio}}</p>
                        <p><a href="javascrip:void(0);" class="btn btn-primary" ng-click="myName()" role="button">Button</a> <a href="#" class="btn btn-default" role="button">Button</a></p>
                    </div>
                </div>
            </div>


        </div>
    </div>
  </div>

  <!-- /.row -->
 </div>

我的所有js代码都在app.js(assets / js / app.js)中包含了Angular Js.在这个js文件中,我设置了一个与codeigniter config.php文件相同的base_url变量

$config [‘base_url’] =’http://localhost/AngularExPack/Angular_Bootstrap_CI_1/‘;

在app.js里面

var base_url =’http://localhost/AngularExPack/Angular_Bootstrap_CI_1/‘

当我点击我的按钮与ng-click =“myName”我想得到一个控制器(Codeigniter控制器),并希望在该控制器内执行一个功能.这里我使用auth.php(controllers / auth.php)和函数名作为functionOne();

public function functionOne()
    {
        /*$this->load->view('home1');*/
         echo "hai";
    }

对于iam使用$hhtp.post和var base_url作为路径.但我没有得到那个输出,它没有传递给那个控制器.

myApp.controller('ListController',['$scope','$http','settings',function($scope,$http) {

                 $http.get('application/datas/data.json').success(function(data) {
                     $scope.artists = data;
                 });

                 $scope.myName = function() {
                     alert("hai1");
                     /**/
                     $http.post(base_url + 'auth/functionOne').success(function(response) {
                         $scope.data = response
                         console.log($scope.data);
                         alert($scope.data);
                     });

                 }

             }]);

ng-click =“myName”功能正常.但它没有传递给控制器??auth.php中的函数functionOne.我认为问题可能在于base_url路径.如果有人知道这个PLZ帮助我解决这个问题.

解决方法

好吧,我不知道这会对你有所帮助,但这就是我这样做的方式:

我在服务中有这个功能:

saveFunction: function(obj,user,securityToken){  
            return $http({
            method: 'POST',url: 'index.php/controller/saveFUnction',data: $.param({
                postID: obj.id,csrfTokenName: securityToken,postName: obj.name,.....
                userID: user.id                 
            }),headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        });
    }

如果您的csrfToken在codeigniter配置中处于活动状态,则需要在表单中将其作为隐藏类型字段传递.此外,您必须在标题中设置内容类型.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读