AngularJS中文社区ajax返回的页面通过脚本设置的cookie,怎么破

AngularJS中文社区ajax返回的页面通过脚本设置的cookie,怎么破,第1张

angularjs中的ngCookie是可以设置cookie的过期日期的,示例代码如下:

angular.module('cookiesExample',

['ngCookies'])

.controller('ExampleController',

['$cookies',

function($cookies)

{

//

Find

tomorrow's

date.

var

expireDate

=

new

Date()

expireDate.setDate(expireDate.getDate()

+

1)

//

Setting

a

cookie

$cookies.put('myFavorite',

'oatmeal',

{'expires':

expireDate})

}])

访问Cookies服务在angular中是受限制的.

你只能通过原生的javascript来设置

document.cookie = "someCookieName=true expires=Fri, 31 Dec 9999 23:59:59 GMT path=/"

其实在ng中做页面访问权有很多种方法,各有利弊,运用的比较多的是拦截器,拦截器使得在前端往后端发送http请求之前或之后做一些 *** 作,比如全局监测用户是否登录,没登陆就要跳转的登录页面,登录就可以访问页面;拦截器的使用往往配合后台数据,也就是获取到最新的‘标示',来确定这个页面或者下个页面要做什么 *** 作;而这里我使用的是一种用前端控制的方式,不用数据交互,理念就是定义好不同等级/阶段可以访问的页面,在路由的地方作拦截,针对一些不同等级/阶段访问权限定义明确的可以参考使用这种方法,代码如下:

......

app.run(['$rootScope', '$state', '$window', function($rootScope, $state, $window) {

$rootScope.$on('$stateChangeStart', function(event, toState, toStateParams) {

//用户访问等级阶段, 0 1 2

Array.prototype.contains = function(needle) {

for(i in this) {

if(this[i] == needle) return true

}

return false

}

var status=new Array("user.a","user.b","user.c","user.d","user.e","user.f","user.g")

var status0=new Array("user.a","user.b")

var status1=new Array("user.c","user.d")

var status2=new Array("user.a","user.b","user.c","user.d")

if (status.contains(toState.name)) {

if(initObj.getStatus()=="0"){

if(!status0.contains(toState.name)){

event.preventDefault()

$state.go('user.approve')

}

return

}

if(initObj.getStatus()=="1"){

if(!status1.contains(toState.name)){

event.preventDefault()

$state.go('user.result')

}

return

}

if(initObj.getStatus()=="2"){

if(!status2.contains(toState.name)){

event.preventDefault()

$state.go('user.result')

}

return


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12053898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存