var _RUIKA_USER_LOGIN_API="http://user.test.com/api.ajaxLogin.do";

//前台Ajax执行登录
function rk_login(username, password) {
var result = false;
if (username != null && $.trim(username).length > 0
&& password != null && $.trim(password).length > 0) {
$.ajax({
type : "get",
url : _RUIKA_USER_LOGIN_API,
async : true,
data : {
"username" : username,
"password" : password
},
dataType : "jsonp",
jsonp : "callbackparam",
jsonpCallback : "rk_login_callBack"
});
}
return result;
}

////////////www.ruika365.com/index.html使用

//执行登录
$("#index_login_submit").click(function(){
var username = $("#login_info").val();
var password = $("#password").val();
var a = rk_login(username,password);
                return false;
});
});
//java那里已经在后台输出
//rk_login_callBack({type:1,id:"51be591d2a1d4f6c86f3f606aa1cab39",name:"admin",headpic:"http://user.test.com/front/head/20130914103019234.jpg"})
// ajax 登录成功后回调函数
function rk_login_callBack(data) {
        alert(data);//这里没有data为空,如何获取这里的值 var type = data.type;
var name = data.name;
        var id = data.id;
        var headpic = data.headpic;
if (type==1) {
            document.getElementById("login_type").value=1;     
}else{
            document.getElementById("login_type").value=0;
            $("#error_message").show();
        }
}ajaxjquery回调函数

解决方案 »

  1.   

    你浏览器看调试看下,你的回调方法  "rk_login_callBack"  这个 是否 成功 。网页有没有错误 ?
      

  2.   


    $.ajax({
                    type : "get",
                    url : _RUIKA_USER_LOGIN_API,
                    async : true,
                    data : {
                        "username" : username,
                        "password" : password
                    },
                    dataType : "jsonp",
                    jsonp : "callbackparam",
                    success: function (data) {
                         rk_login_callBack(data)
                    }
                });
    试试
      

  3.   

    调用成功了,但是没有获取到值
    function rk_login_callBack(data) {         alert(data);//<SPAN style="COLOR: #ff0000">这里没有data为空,如何获取这里的值</SPAN>    var type = data.type;     var name = data.name;         var id = data.id;         var headpic = data.headpic;     if (type==1) {             document.getElementById("login_type").value=1;          }else{             document.getElementById("login_type").value=0;             $("#error_message").show();         } } 
      

  4.   

    你浏览器直接 敲  http://user.test.com/api.ajaxLogin.do
      

  5.   

    php调用java里的方法,跨域的,success不起作用吧
      

  6.   

    dataType : "jsonp",
                    jsonp : "callback",//-----callback
                    jsonpCallback : "rk_login_callBack" });
    function rk_login_callBack(data){
    alert(data);
    }
      

  7.   

    js获取不到值,应该是java返回的问题,在java打断点看看返回的是什么
      

  8.   

    从后到前一步步查,别急。1、查java是否有返回值,返回值是否正确。
    2、在浏览器network(ie里是网络)看你ajax请求返回的是什么。
    3、如果上面两条都没问题,那就看ajax方法调用的对不对。
      

  9.   

    我怀疑是不是你那个回调函数没有把data传给你的rk_login_callBack方法
      

  10.   

    可以获得返回值,并在html上输出方法名+参数,我直接敲可以获取到并能打印出来
      

  11.   

    我怀疑是不是你那个回调函数没有把data传给你的rk_login_callBack方法用原帖那种方法是在html页面输出回调函数方法名称+参数【rk_login_callBack({type:1,name:"22"})】,方法是输出了,函数也调用到了,但值确实没过来
      

  12.   

    var _RUIKA_USER_LOGIN_API="http://user.test.com/api.ajaxLogin.do";
         
        //前台Ajax执行登录
        function rk_login(username, password) {
            var result = false;
            if (username != null && $.trim(username).length > 0
                    && password != null && $.trim(password).length > 0) {    
                $.ajax({
                    type : "get",
                    url : _RUIKA_USER_LOGIN_API,
                    async : true,
                    data : {
                        "username" : username,
                        "password" : password
                    },
                    dataType : "jsonp",
                    jsonp : "callbackparam",
                    jsonpCallback : "rk_login_callBack"
                });
            }
            return result;
        }
         
        ////////////www.ruika365.com/index.html使用
         
        //执行登录
        $("#index_login_submit").click(function(){
            var username = $("#login_info").val();
            var password = $("#password").val();
            var a = rk_login(username,password);
                    return false;
        });//你这里的"rk_login_callBack"  这个数据在js里面可以取到吗
    //你浏览器调试应可以看到  url+callbackparam=rk_login_callBack------->rk_login_callBack//({type:1,id:"51be591d2a1d4f6c86f3f606aa1cab39",name:"admin",headpic:"http://user.test.com/front/head/20130914103019234.jpg"})function rk_login_callBack(data) {
            alert(data);//<span style="color: #FF0000;">这里没有data为空,如何获取这里的值</span>    var type = data.type;
        var name = data.name;
            var id = data.id;
            var headpic = data.headpic;
        if (type==1) {
                document.getElementById("login_type").value=1;     
        }else{
                document.getElementById("login_type").value=0;
                $("#error_message").show();
            }
    }
    });
      

  13.   

    按照描述数据是按照正确格式到你前台了,那么可以这样,不要用jquery的ajax,用js标准写法试试看能不能得到值。
    var xmlhttp;
    if (window.XMLHttpRequest)
    {
    xmlhttp=new XMLHttpRequest();
    }
    else
    {
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.open("GET",_RUIKA_USER_LOGIN_API+"?username="+username+"&password="+password,true);
    xmlhttp.onreadystatechange=function()
    {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
    alert(xmlhttp.responseText);
        }
    }
    xmlhttp.send();
      

  14.   

    xmlhttp.open("GET",_RUIKA_USER_LOGIN_API+"?username="+username+"&password="+password,true);
    到这里报错,拒绝访问
      

  15.   

    我随便写的,你看看url拼的哪不对了,或者用原来的jquery写法到浏览器里看看具体发送请求的url是什么,复制到这边就可以了
      

  16.   

    你登录的时候提交用户名跟密码肯定不能用get请求,密码都能被看到了
      

  17.   

    xmlhttp.open("GET",_RUIKA_USER_LOGIN_API+"?username="+username+"&password="+password,true);
    到这里报错,拒绝访问你用原生态的 得自己手动创建回调 脚本比较麻烦 。
    现在好像jquery 有专门jsonp 的库  。
      

  18.   

    这都不是重点,我觉得是跨域问题,有没有php拒绝传回的值得情况