jQuery MiniUI

标题: 权限控制的问题 [打印本页]

作者: angle    时间: 2014-3-31 12:02:10     标题: 权限控制的问题

我用$.ajax先判断是不是有权限 如果没有权限了想直接返回 代码如下
  1. $.ajax({
  2.             url: "/task_UI/task/Task?action=dutyValidate&task_id=" +value,
  3.             success: function (text) {

  4.                                                     if(text.indexOf("没有权限")>=1){
  5.                                                                 alset(text);
  6.                                                                 return;
  7.                                                     }
  8.                                             }
  9.                           });       
复制代码
不想让继续往下执行,但是return好像结束不了 代码还是往下在执行


作者: factory    时间: 2014-3-31 12:19:39

ajax默认异步

设置async:false 同步
作者: felt    时间: 2014-3-31 12:21:14

你想return什么
作者: angle    时间: 2014-3-31 14:12:17

felt 发表于 2014-3-31 12:21
你想return什么

想结束了 程序不往下走
作者: angle    时间: 2014-3-31 14:13:01

factory 发表于 2014-3-31 12:19
ajax默认异步

设置async:false 同步

设置了不起作用
作者: factory    时间: 2014-3-31 14:23:01

angle 发表于 2014-3-31 14:13
设置了不起作用

ajax写成只是获取一个权限,但是要不要return,你额外判断
function getFcn(){
var a;
$.ajax({
    ....success:function(text){
          a=text
     }
})
return a;
}

其他地方调用这个函数
var b = getFcn()

if(b == ...) return;
作者: angle    时间: 2014-3-31 16:27:41

factory 发表于 2014-3-31 14:23
ajax写成只是获取一个权限,但是要不要return,你额外判断
function getFcn(){
var a;

版主 现在为啥成功或失败程序都不往下走了
  1. if (value != null&&value!="") {
  2.                     var b = getFcn(value);
  3.                     if(b.indexOf("没有权限")>=1) return;

  4.                   mini.open({
  5.                       url: bootPATH + "../task/taskAdd.jsp",
  6.                       title: "编辑任务", width: 600, height: 360,
  7.                       onload: function () {
  8.                          var iframe = this.getIFrameEl();
  9.                          var data = { action: "edit", id: value };
  10.                          iframe.contentWindow.SetData(data);  
  11.                       },
  12.                       ondestroy: function (action) {
  13.                           grid.reload();
  14.                           tree.reload();
  15.                       }
  16.                   });
  17.               
  18.           } else {
  19.               alert("请选中一条记录");
  20.           }  
复制代码

         
作者: felt    时间: 2014-3-31 16:34:10

angle 发表于 2014-3-31 16:27
版主 现在为啥成功或失败程序都不往下走了

ajax里加下async:false设置下同步试试
作者: angle    时间: 2014-3-31 16:47:10

felt 发表于 2014-3-31 16:34
ajax里加下async:false设置下同步试试

var b = getFcn(value); 这个b为啥是undefined
作者: angle    时间: 2014-3-31 16:57:49

felt 发表于 2014-3-31 16:34
ajax里加下async:false设置下同步试试
  1. function getFcn(value){
  2.             var a;
  3.             $.ajax({
  4.                         url: "/task_UI/task/Task?action=dutyValidate&task_id="+value,
  5.                         success: function (text) {
  6.                                 alert(text);
  7.                                 a = text;
  8.                         }
  9.             });       
  10.             return a;
  11.     }
复制代码
版主 你帮我看看 这个a为啥是undefined
作者: factory    时间: 2014-3-31 17:00:29

angle 发表于 2014-3-31 16:57
版主 你帮我看看 这个a为啥是undefined

1:给ajax加上async:false让他同步

2.你是不是ajax都没成功交互啊?

所以a=text,都没成功被赋值?

反正应该是这2个问题中的一个,你仔细检查看看
作者: angle    时间: 2014-3-31 17:12:56

factory 发表于 2014-3-31 17:00
1:给ajax加上async:false让他同步

2.你是不是ajax都没成功交互啊?

加了async:false好了 但是这个判断好像不起作用 if(b.indexOf("没有权限")>=1) return;
return不了
作者: felt    时间: 2014-3-31 17:18:08

angle 发表于 2014-3-31 17:12
加了async:false好了 但是这个判断好像不起作用 if(b.indexOf("没有权限")>=1) return;
return不了 ...

你看下ajax返回的数据是啥类型
用var newText=mini.decode(text)转下试试
作者: angle    时间: 2014-3-31 17:23:54

felt 发表于 2014-3-31 17:18
你看下ajax返回的数据是啥类型
用var newText=mini.decode(text)转下试试

加了就出错了 应该不是这个问题
作者: felt    时间: 2014-3-31 17:24:47

angle 发表于 2014-3-31 17:23
加了就出错了 应该不是这个问题

那你自己看下ajax返回的数据到底是啥,为什么会判断没用
作者: angle    时间: 2014-3-31 17:26:29

felt 发表于 2014-3-31 17:24
那你自己看下ajax返回的数据到底是啥,为什么会判断没用

一个是 成功 另一个是 没有权限 在另外一个地方都可以
作者: felt    时间: 2014-3-31 17:32:48

angle 发表于 2014-3-31 17:26
一个是 成功 另一个是 没有权限 在另外一个地方都可以

b.toString()转成string再判断行不行
作者: angle    时间: 2014-4-1 09:09:28

felt 发表于 2014-3-31 17:32
b.toString()转成string再判断行不行

还是不行
作者: factory    时间: 2014-4-1 09:59:23

angle 发表于 2014-4-1 09:09
还是不行

你返回的字符串是不是就是   "没有权限" 啊?
那你indexOf("没有权限") == 0的啊
你判断改成 b.indexOf("没有权限") !=-1;试试
作者: angle    时间: 2014-4-1 17:10:46

好了 谢谢版主




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2