【发布时间】:2022-01-08 08:08:38
【问题描述】:
我对角度知之甚少,请有人帮助我在本地主机上工作正常.. 它运行良好,而 php5 在升级 php7 后出现此错误,
angular.min.js:85 错误:[$sce:insecurl] http://errors.angularjs.org/1.2.13/$sce/insecurl? p0=学生%2Flistdata.php%3F 在 angular.min.js:6 在 getTrusted (angular.min.js:110) 在 Object.e. [作为 getTrustedResourceUrl] (angular.min.js:112) 在 angular-route.min.js:10 在 B (angular.min.js:94) 在 B (angular.min.js:94) 在 angular.min.js:95 在 h.$eval (angular.min.js:103) 在 h.$digest (angular.min.js:101) 在 h.$apply (angular.min.js:104)
列表页
<?php
global $title,$titleS,$CURRENTUNIT,$addNewFn;
$path = "../";
include_once($path."includes/class.inc.php");
$title = "Students";
$titleS = "Student Details";
admin_userChk();
error_reporting(0);
if(!user_hasRights('menuStudentList')){ echo "<h1>403: Access Forbidden</h1>";exit; }
?>
<div class="row">
<div class="col-md-12">
<section class="panel" ng-controller="listController" id="listController" ng-init="filter.SearchQry='';filterListData()">
<header class="panel-heading" >
List of <?=$title?>
<div class="pull-right">
<?php //if(user_hasRights('addNewProductinfo')){ ?>
<a ng-click="addNewStudInfo()" class="btn btn-mini btn-success"><i class="fa fa-graduation-cap"></i> Add New <?=$titleS?></a>
<?php //} ?>
</div>
</header>
<div class="row">
<div class="col-md-12">
<form class="form-inline" ng-submit="filterListData()" >
<div class="form-group">
<div class="col-md-12">
<input type="text" name="SearchQry" class="form-control" placeholder="Search" value="<?=$_REQUEST['SearchQry']?>" ng-model="filter.SearchQry">
</div>
</div>
<div class="form-group">
<div class="col-md-8">
<button class="btn btn-small btn-info" type="submit">SUBMIT</button>
</div>
</div>
<script type="text/javascript">
//$('#searchForm [name="InternalCompId"]').val('<?=$_REQUEST['InternalCompId']?>')
</script>
</form>
</div>
</div>
<div class="pull-out m-t-small">
<table class="table table-bordered table-striped b-t text-small">
<thead>
<tr align="center">
<th >Sl.No</th>
<th >Student Name</th>
<!-- <th >Grade</th> -->
<th >Parent Name</th>
<!-- <th >Parent Occupation</th> -->
<th >Contact No</th>
<th >Email</th>
<th >Current Level</th>
<th >D.O.B</th>
<th >Joined On</th>
<?php if(user_hasRights('editStudInfo')){ ?>
<th >Edit</th>
<?php } ?>
<?php if(user_hasRights('deleteStudInfo')){ ?>
<th >Delete</th>
<?php } ?>
</tr>
</thead>
<tbody>
<tr ng-repeat="data in dataList">
<td>{{data.slno}}</td>
<td>{{data.StudentName}}</td>
<!-- <td>{{data.Grade}}</td> -->
<td>{{data.ParentName}}</td>
<!-- <td>{{data.ParentOccupation}}</td> -->
<td>{{data.ContactNo}}</td>
<td>{{data.Email}}</td>
<td>{{data.CurrentLevel}}</td>
<td>{{data.Dob}}</td>
<td>{{data.Doj}}</td>
<?php if(user_hasRights('editStudInfo')){ ?>
<td>
<a href="javascript:;" ng-click="editStudInfo($index)" class="btn btn-sm btn-info tooltipThis" uib-tooltip="Edit This <?=$titleS?>"><i class="fa fa-edit"></i></a>
<input type="hidden" id="editId{{$index}}" value="{{data.StudId}}" />
</td>
<?php } ?>
<?php if(user_hasRights('deleteStudInfo')){ ?>
<td><a href="javascript:;" ng-click="deleteStudInfo($index)" class="btn btn-sm btn-danger tooltipThis" tooltip-placement="left" uib-tooltip="Delete This <?=$titleS?>"><i class="fa fa-trash-o"></i></a></td>
<?php } ?>
</tr>
</tbody>
</table>
<div class="clearfix"></div>
</div>
<footer class="panel-footer">
<div class="row">
<div class="col-lg-12 text-center">
<ul class="pagination pagination-small m-t-none m-b-none">
<li><a href="javascript:;" ng-click="filterListData('First')" class="paginate_button">First</a></li>
<li><a href="javascript:;" ng-click="filterListData('Prev')" class="paginate_button">Prev</a></li>
<li class="active">
<input type="text" ng-model="filter.page" id="CurrentPage" class="form-control pull-left" style="width:50px" my-enter="filterListData('Current')">
<a href="" onclick="return false"> of {{filter.totalPages}}</a>
</li>
<li><a href="javascript:;" ng-click="filterListData('Next')" class="paginate_button">Next</a></li>
<li><a href="javascript:;" ng-click="filterListData('Last')" class="paginate_button">Last</a></li>
</ul>
</div>
</div>
</footer>
</section>
</div>
</div>
<script>
var pageConfig = {pageTitleS: "<?=$titleS?>", bcl0: "Home", bcl1: "<?=$title?>", bcl2: "<?=$titleS?>"};
updatePageInfo(pageConfig);
function listController($scope, $http) {
$scope.filterListData = function(gotoPage) {
$http.post(
'students/forms.php?render=json&gotoPage='+gotoPage,
$.param($scope.filter), {headers:{'Content-Type': 'application/x-www-form-urlencoded'} }
)
.then(function(response){
$scope.dataList = response.data.list;
$scope.filter.page = response.data.filter.page;
$scope.filter.totalPages= response.data.filter.totalPages;
});
};
<?php if(user_hasRights('addNewStudInfo')){ ?>
$scope.addNewStudInfo = function() {
$http.get('students/forms.php?FormId=addNewStudInfo')
.then(function(response){ $('#myModal').html(response.data).modal(); });
};
<?php } ?>
<?php if(user_hasRights('editStudInfo')){ ?>
$scope.editStudInfo = function(index) {
var editId = $("#editId"+index).val();
$http.get('students/forms.php?FormId=editStudInfo&editId='+editId)
.then(function(response){ $('#myModal').html(response.data).modal(); });
};
<?php } ?>
<?php if(user_hasRights('deleteStudInfo')){ ?>
$scope.deleteStudInfo = function(index) {
$.confirm({
message: '<b>Are you sure that you want to delete this?</b>',
labelOk:"Delete",
onOk: function() {
//action
var editId = $("#editId"+index).val();
$http.get('students/forms.php?action=deleteStudInfo&delId='+editId)
.then(function(response){$scope.filterListData('Current'); });
}
});
};
<?php } ?>
}
</script> ```
**index page**
```<?php
$appPath = "app/#/";
session_start();
$path = "../";
include_once($path."includes/class.inc.php");
admin_userChk();
?>
<!DOCTYPE html>
<html ng-app="mainApp">
<head>
<meta charset="utf-8">
<base href="http://<?=$_SERVER['HTTP_HOST']?>/admin/">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="description" content="A fully featured admin theme which can be used to build CRM, CMS, etc.">
<meta name="author" content="Coderthemes">
<link rel="shortcut icon" href="assets/themes/start/images/favicon_1.ico">
<title>WebPanel by Sura</title>
<link href="assets/themes/start/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="assets/themes/start/css/core.css" rel="stylesheet" type="text/css">
<link href="assets/themes/start/css/icons.css" rel="stylesheet" type="text/css">
<link href="assets/themes/start/css/components.css" rel="stylesheet" type="text/css">
<link href="assets/themes/start/css/pages.css" rel="stylesheet" type="text/css">
<link href="assets/themes/start/css/menu.css" rel="stylesheet" type="text/css">
<link href="assets/themes/start/css/responsive.css" rel="stylesheet" type="text/css">
<script src="assets/themes/start/js/modernizr.min.js"></script>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --><!-- WARNING: Respond.js doesn't work if you view the page via file:// --><!--[if lt IE 9]>
<script src="../../https@oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="../../https@oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="angular/page.css" media="all" />
<link rel="stylesheet" type="text/css" href="angular/animate.min.css" media="all" />
<!-- Plugins -->
<link href="assets/plugins/select2/select2.css" rel="stylesheet" />
<link href="assets/plugins/select2/select2-bootstrap.css" rel="stylesheet" />
<link href="assets/plugins/selectize/selectize.css" rel="stylesheet" />
<link href="assets/plugins/selectize/selectize.bootstrap3.css" rel="stylesheet" />
<link href="assets/plugins/jquery-ui/theme/jquery-ui.custom.min.css" rel="stylesheet" />
<link href="assets/plugins/summernote/summernote.css" rel="stylesheet" />
<link href='assets/plugins/loading-bar/loading-bar.css' rel='stylesheet' />
<link rel="stylesheet" type="text/css" href="assets/plugins/tagsinput/jquery.tagsinput.min.css" media="all" />
<!-- Plugins -->
</head>
<body class="fixed-left">
<!-- Begin page -->
<div id="wrapper">
<!-- Top Bar Start -->
<div class="topbar">
<!-- LOGO -->
<div class="topbar-left">
<div class="text-center"><a href="./" class="logo"><i class="fa fa-edit"></i> <span>Web Panel</span></a></div>
</div>
<!-- Button mobile view to collapse sidebar menu -->
<div class="navbar navbar-default" role="navigation">
<div class="container">
<div class="">
<div class="pull-left"><button class="button-menu-mobile open-left"><i class="fa fa-bars"></i></button> <span class="clearfix"></span></div>
<!-- <form class="navbar-form pull-left" role="search">
<div class="form-group"><input type="text" class="form-control search-bar" placeholder="Type here for search..."></div>
<button type="submit" class="btn btn-search"><i class="fa fa-search"></i></button>
</form> -->
<ul class="nav navbar-nav navbar-right pull-right">
<!--<li class="dropdown hidden-xs">
<a href="#" data-target="#" class="dropdown-toggle waves-effect" data-toggle="dropdown" aria-expanded="true"><i class="md md-notifications"></i> <span class="badge badge-xs badge-danger">3</span></a>
<ul class="dropdown-menu dropdown-menu-lg">
<li class="text-center notifi-title">Notification</li>
<li class="list-group">
<!-- list item-- >
<a href="javascript:void(0);" class="list-group-item">
<div class="media">
<div class="pull-left"><em class="fa fa-user-plus fa-2x text-info"></em></div>
<div class="media-body clearfix">
<div class="media-heading">New user registered</div>
<!-- <p class="m-0"><small>You have 10 unread messages</small></p> -- >
</div>
</div>
</a>
<!-- list item-- >
<a href="javascript:void(0);" class="list-group-item">
<div class="media">
<div class="pull-left"><em class="fa fa-diamond fa-2x text-primary"></em></div>
<div class="media-body clearfix">
<div class="media-heading">New Order Placed</div>
<!-- <p class="m-0"><small>There are new settings available</small></p> -- >
</div>
</div>
</a>
<!-- list item-- >
<a href="javascript:void(0);" class="list-group-item">
<div class="media">
<div class="pull-left"><em class="fa fa-bell-o fa-2x text-danger"></em></div>
<div class="media-body clearfix">
<div class="media-heading">New Order Placed</div>
<p class="m-0"><small> <span class="text-primary">2</span> New Orders Placed</small></p>
</div>
</div>
</a>
<!-- last list item -- > <a href="javascript:void(0);" class="list-group-item"><small>See all notifications</small></a>
</li>
</ul>
</li>-->
<li class="dropdown">
<a href="./" class="dropdown-toggle profile" data-toggle="dropdown" aria-expanded="true">Welcome <?=$_SESSION['adminName']?> <img src="files/<?=$_SESSION['adminPic']?>" alt="user-img" class="img-circle"></a>
<ul class="dropdown-menu">
<li><a href="<?=$appPath?>settings/profile.php"><i class="fa fa-user"></i> My Profile</a></li>
<li><a href="<?=$appPath?>settings/profile.php?action=ChangePassword"><i class="fa fa-cog"></i> Change Password</a></li>
<li><a href="logout.php"><i class="fa fa-power-off"></i> Logout</a></li>
</ul>
</li>
</ul>
</div>
<!--/.nav-collapse -->
</div>
</div>
</div>
<!-- Top Bar End --><!-- ========== Left Sidebar Start ========== -->
<div class="left side-menu">
<div class="sidebar-inner slimscrollleft">
<div class="user-details">
<div class="pull-left"><img src="files/<?=$_SESSION['adminPic']?>" alt="" class="thumb-md img-circle"></div>
<div class="user-info">
<div class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false"><?=$_SESSION['adminName']?> <span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="<?=$appPath?>settings/profile.php"><i class="fa fa-user"></i> My Profile<div class="ripple-wrapper"></div></a></li>
<li><a href="<?=$appPath?>settings/profile.php?action=ChangePassword"><i class="fa fa-cog"></i> Settings</a></li>
<li><a href="logout.php"><i class="fa fa-power-off"></i> Logout</a></li>
</ul>
</div>
<p class="text-muted m-0">IP: <?=$_SERVER['REMOTE_ADDR']?></p>
</div>
</div>
<!--- Divider -->
<div id="sidebar-menu">
<ul>
<li><a href="<?=$appPath?>home/home.php" class="waves-effect waves-light"><i class="md md-home"></i><span>Home</span></a></li>
<li><a href="<?=$appPath?>orders/listdata.php" class="waves-effect"><i class="fa fa-shopping-cart"></i><span>Orders</span></a></li>
<li><a href="<?=$appPath?>buyers/listdata.php" class="waves-effect"><i class="fa fa-users"></i><span>Buyers</span></a></li>
<li><a href="<?=$appPath?>books/listdata.php" class="waves-effect"><i class="fa fa-book"></i><span>Book Details</span></a></li>
<li><a href="<?=$appPath?>discount/listdata.php" class="waves-effect"><i class="fa fa-cog"></i><span>Discount Terms</span></a></li>
<li><a href="<?=$appPath?>coupon/listdata.php" class="waves-effect"><i class="fa fa-gift"></i><span>Coupon Codes</span></a></li>
<li><a href="<?=$appPath?>shopsettings/listdata.php" class="waves-effect"><i class="fa fa-cogs"></i><span>Shop Settings</span></a></li>
<li><a href="<?=$appPath?>shipsettings/listdata.php" class="waves-effect"><i class="fa fa-cogs"></i><span>Ship Settings</span></a></li>
<li class="divider"><br /><br /></li>
<li><a href="<?=$appPath?>levels/listdata.php" class="waves-effect"><i class="fa fa-file-pdf-o"></i><span>Levels</span></a></li>
<li><a href="<?=$appPath?>students/listdata.php" class="waves-effect"><i class="fa fa-graduation-cap"></i><span>Students (Users)</span></a></li>
<li><a href="<?=$appPath?>webcontent/listdata.php" class="waves-effect"><i class="fa fa-file-text"></i><span>Website contents</span></a></li>
<!-- <li><a href="<?=$appPath?>webnews/listdata.php" class="waves-effect"><i class="fa fa-newspaper-o"></i><span>News & Events</span></a></li> -->
<li><a href="<?=$appPath?>photos/listdata.php" class="waves-effect"><i class="fa fa-picture-o"></i><span>Photos</span></a></li>
<li><a href="<?=$appPath?>webvideos/listdata.php" class="waves-effect"><i class="fa fa-youtube-play"></i><span>Videos</span></a></li>
<li><a href="<?=$appPath?>testimonials/listdata.php" class="waves-effect"><i class="fa fa-quote-right"></i><span>Testimonials</span></a></li>
</ul>
<div class="clearfix"></div>
</div>
<div class="clearfix"></div>
</div>
</div>
<!-- Left Sidebar End --><!-- ============================================================== --><!-- Start right Content here --><!-- ============================================================== -->
<div class="content-page">
<!-- Start content -->
<div class="content">
<div class="container">
<!-- Page-Title -->
<div class="row">
<div class="col-sm-12">
<h4 class="pull-left page-title pageTitleS"></h4>
<ol class="breadcrumb pull-right">
<li><a href="<?=$appPath?>" class="l0">Home</a></li>
<li><a href="javascript:;" class="l1"></a></li>
<li class="active l2"></li>
</ol>
</div>
</div>
<div>
<div class="page {{ pageClass }}" ng-view></div>
</div>
</div>
<!-- container -->
</div>
<!-- content -->
<footer class="footer text-right">2015 © <a href="http://suratechnologies.in" target="_blank">Sura Technologies</a></footer>
</div>
<!-- ============================================================== --><!-- End Right content here -->
</div>
<!-- END wrapper -->
<script>var resizefunc = [];</script>
<!-- Main -->
<script src="assets/themes/start/js/jquery.min.js"></script>
<script src="assets/themes/start/js/bootstrap.min.js"></script>
<script src="assets/themes/start/js/detect.js"></script>
<script src="assets/themes/start/js/fastclick.js"></script>
<script src="assets/themes/start/js/jquery.slimscroll.js"></script>
<script src="assets/themes/start/js/wow.min.js"></script>
<script src="assets/themes/start/js/jquery.nicescroll.js"></script>
<script src="assets/themes/start/js/jquery.scrollTo.min.js"></script>
<script src="assets/themes/start/js/jquery.app.js"></script>
<!-- Plugins -->
<script src="assets/plugins/select2/select2.js"></script>
<script src="assets/plugins/selectize/selectize.min.js"></script>
<script src="assets/plugins/jquery-ui/jquery-ui.min.js"></script>
<script src="assets/plugins/summernote/summernote.js"></script>
<script src="assets/plugins/tagsinput/jquery.tagsinput.min.js"></script>
<!-- Plugins -->
<script src="assets/plugins/jquery.form.min.js"></script>
<script src="assets/plugins/validate.js"></script>
<script src="angular/angular.min.js"></script>
<script src="angular/angular-route.min.js"></script>
<script src="angular/angular-animate.min.js"></script>
<script src="angular/ui-bootstrap.min.js"></script>
<script src="angular/main.js"></script>
<script src="assets/plugins/loading-bar/loading-bar.js"></script>
<script type="text/javascript">
function getCustSummary(PartyId){
$('.modal-body').html('<img src="images/preloader.gif" alt="" />');
$.ajax({
url: "customers/ajaxdata.php?action=getCustSummary&InternalCompType=&PartyId="+PartyId,
success: function (data) { $('#myModal').html(data).modal(); }
});
}
$(document).ready(function(){
});
</script>
<div class="modal modal-light fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title"></h4>
</div>
<div class="modal-body"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<div class="modal modal-light fade" id="MainModal"></div>
</body>
</html> ```
angular confirm.js
/*
* angular-confirm
* http://schlogen.github.io/angular-confirm/
* Version: 1.1.0 - 2015-14-07
* License: Apache
*/
angular.module('angular-confirm', ['ui.bootstrap'])
.controller('ConfirmModalController', ['$scope', '$modalInstance', 'data', function($scope, $modalInstance, data) {
$scope.data = angular.copy(data);
$scope.ok = function() {
$modalInstance.close();
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
}])
.value('$confirmModalDefaults', {
template: '<div class="modal-header"><h3 class="modal-title">{{data.title}}</h3></div>' +
'<div class="modal-body">{{data.text}}</div>' +
'<div class="modal-footer">' +
'<button class="btn btn-primary" ng-click="ok()">{{data.ok}}</button>' +
'<button class="btn btn-default" ng-click="cancel()">{{data.cancel}}</button>' +
'</div>',
controller: 'ConfirmModalController',
defaultLabels: {
title: 'Confirm',
ok: 'OK',
cancel: 'Cancel'
}
})
.factory('$confirm', ['$modal', '$confirmModalDefaults', function($modal, $confirmModalDefaults) {
return function(data, settings) {
settings = angular.extend($confirmModalDefaults, (settings || {}));
data = angular.extend({}, settings.defaultLabels, data || {});
if ('templateUrl' in settings && 'template' in settings) {
delete settings.template;
}
settings.resolve = {
data: function() {
return data;
}
};
return $modal.open(settings).result;
};
}])
.directive('confirm', ['$confirm', function($confirm) {
return {
priority: 1,
restrict: 'A',
scope: {
confirmIf: "=",
ngClick: '&',
confirm: '@',
confirmSettings: "=",
confirmTitle: '@',
confirmOk: '@',
confirmCancel: '@'
},
link: function(scope, element, attrs) {
element.unbind("click").bind("click", function($event) {
$event.preventDefault();
if (angular.isUndefined(scope.confirmIf) || scope.confirmIf) {
var data = { text: scope.confirm };
if (scope.confirmTitle) {
data.title = scope.confirmTitle;
}
if (scope.confirmOk) {
data.ok = scope.confirmOk;
}
if (scope.confirmCancel) {
data.cancel = scope.confirmCancel;
}
$confirm(data, scope.confirmSettings || {}).then(scope.ngClick);
} else {
scope.$apply(scope.ngClick);
}
});
}
}
}]);
main.js
var mainApp = angular.module("mainApp", ['ngRoute', 'ngSanitize', 'ngAnimate', 'ui.bootstrap', 'angular-loading-bar']);
mainApp.config(function($routeProvider) {
$routeProvider.when('/:name*', {
templateUrl: function(urlattr) {
var queryString = "";
angular.forEach(urlattr, function(key, value) {
if (value != "name") {
queryString += "&" + value + "=" + urlattr[value];
}
});
//alert(queryString);
return '' + urlattr.name + '?' + queryString;
},
controller: 'mainController'
})
.otherwise({ redirectTo: '' });
});
app.filter('trusted', ['$sce', function($sce) {
return function(url) {
return $sce.trustAsResourceUrl(url);
};
}]);
mainApp.controller('mainController', ['$scope', function($scope) {
$scope.sayHello = function(title) {
alert(title);
$scope.greeting = $scope.username;
};
$scope.greeting = $scope.username;
}]);
angular.module('mainApp')
.filter('to_trusted', ['$sce', function($sce) {
return function(text) {
return $sce.trustAsHtml(text);
};
}]);
mainApp.directive('myEnter', function() {
return function(scope, element, attrs) {
element.bind("keydown keypress", function(event) {
if (event.which === 13) {
scope.$apply(function() {
scope.$eval(attrs.myEnter);
});
event.preventDefault();
}
});
};
});
mainApp.directive('prettyp', function() {
return function(scope, element, attrs) {
$("[rel^='prettyPhoto']").prettyPhoto({ deeplinking: false, social_tools: false });
}
})
function updatePageInfo(pageConfig) {
$("title").html(pageConfig.pageTitleS);
$(".pageTitleS").html(pageConfig.pageTitleS);
$(".breadcrumb .l0").html(pageConfig.bcl0);
$(".breadcrumb .l1").html(pageConfig.bcl1);
$(".breadcrumb .l2").html(pageConfig.bcl2);
$(".date").datepicker();
}
【问题讨论】:
-
错误信息表明您正在尝试访问不安全的 url。尝试使用浏览器直接访问该网址,看看该页面存在什么问题。
-
我现在删除了网址,错误显示此未捕获错误:[$injector:modulerr]
-
这是一个缺少的依赖注入。检查您是否包含了函数内部使用的所有依赖项(
function($scope, $modalInstance, data)...)。main.js这里有一条可疑的线路:scope.$apply(function() {...scope注入到哪里了?
标签: javascript php angularjs