var checkPermission = function(){

var result=""; $.ajax({
   url: "php/permisson.php",
   type: "GET", data: {}, success: function(data) {
if (data == "success") {

result = "logged"; }else{

if (data == "error"){ result = "unlogged"; }
};
 },
 error: function() {
    alert("error");
  }
}); return result; }
如果不可以,要怎样写呢?

解决方案 »

  1.   

    可以,不过没有怎么利用返回值,完全可以POST实现。
      

  2.   

    不能,因为ajax是异步的,需要在success调用callback而不是用这种return的方式
    if (data == "success") {
    loadPermissionResult('logged')
    }else if(data == "error"){
    loadPermissionResult('unlogged')
    }或者 把ajax请求改成同步的,然后就可以用return 
      

  3.   


    loadPermissionResult 这个函数什么意思啊,自己写的吗?首先谢谢你的回答啊。
      

  4.   

    当然不可以那么写,那个ajax是这个意思,你调用ajax经过后台执行后,然后再执行前台JS,这时候你用的jquery框架会有两个状态就是success和error,这两个状态下的函数就是你后台返回的结果,你要对这个结果做什么处理就在success和error函数里写
      

  5.   


    我的返回值的结果是空啊,也就是说,我的checkPermission()函数的返回值为空啊。
      

  6.   


    我就是想,通过验证后,给checkPermission()函数一个返回值,怎么写啊。
      

  7.   

    你要返回值也是做处理啊,直接把处理的代码写在success不就OK了么?
      

  8.   

    设置成同步的就可以接收返回值了,异步的不行var checkPermission = function(){var result="";$.ajax({
    async:false,//设置成同步的,而不是异步,要不result又可能永远为空
    url: "php/permisson.php",
    type: "GET",data: {},success: function(data) {
    if (data == "success") {result = "logged";}else{if (data == "error"){result = "unlogged";}
    };
    },
    error: function() {
    alert("error");
    }
    });return result;}