Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax返回_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 使用Ajax返回

Javascript 使用Ajax返回,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图用ajax返回一个值,表示成功和失败,但它只返回未定义的值。 这是我的剧本 function loginCheck(email, password, id){ $.get("inc/ajax/login_check.php", {email:email, password:password}, function(html){ if(html == 0){ return 0;

我试图用ajax返回一个值,表示成功和失败,但它只返回未定义的值。 这是我的剧本

function loginCheck(email, password, id){
    $.get("inc/ajax/login_check.php",
        {email:email, password:password},
        function(html){
            if(html == 0){
                return 0;
            }
            else{
                return 1;
            }
        }
    );
}

请,请,请不要使用GET作为用户和密码的方法,从安全角度看,这是一个糟糕的想法

话虽如此,但对于您的问题:
$.get是$ajax的缩写。有时,在对象中声明数据引用是一种更好的做法,这样可以确保正确发送数据。尝试使用完全正确语法的$ajax,如下所示:

$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
例如:

$.ajax({
type: "POST",
url: "some.php",
data: { name: "John", location: "Boston" }
}).success(function( msg ) {
alert( "Data Saved: " + msg );
});

完整文档:

什么返回未定义?@David:OP的
loginCheck
函数(隐式)执行此操作。他在他的成功回调中使用了
return
,显然他希望这会对外部函数的返回值产生神奇的影响。我希望它返回1或0。因此,唯一的方法是使用$.ajax?@RuneFS:不,即使是第三版规范(1999)也区分了三种可能的结果状态(
抛出
返回
、和
正常
),请参见中的§13.2.1(警告:它太大)。但这是一种特殊的说法,因为调用函数的表达式总是有值的(当然,表达式总是有值的)。如果函数没有任何
返回
,则表达式的结果为
未定义
(非
)。@t.J.Crowder如果本应未定义且非空,则确实正确,但这不会改变点。JS中的每个函数调用都返回一个值(其中一个未定义)。13.2.1规定,如果未抛出任何内容,且未显式返回任何内容(result.type==return),则返回
undefined
。但是,该函数将返回0或1,并且始终返回其中一个。无法获取返回值,但这不会改变返回值。这不是问题的答案。POST也不安全。那么什么才是安全的呢?事实上,它也不安全,但在GET中发送未加密的密码很容易被浏览器拾取和/或错误保存,这完全是粗心大意。如果您想要安全,您可以在通过https发送数据之前在浏览器中对所有数据进行加密。而且它仍然很脆弱。除非你在VPN中,否则你无法真正击败中间人攻击。但这并不意味着构建安全层不起作用。事实上,对代码应用基本安全性将阻止大多数攻击。