Ajax得到响应未定义和未捕获的ReferenceError

时间:2012-11-24 19:00:13

标签: php jquery

代码:

query = "http://localhost:8080/working_login.php?name=" + name + "&password=" + pass;
console.log(query);

   $.ajax({
    type: "GET",
    url: query,
 dataType: "script",
 success: function(data){
            console.log(data);
            console.log("success");
        },
error:function (msg) {
            console.log("error on page");
        }           
    });

我在数据中未定义,因为我在php中从服务器端返回'valid_user',收到错误。

Uncaught ReferenceError: valid_user is not defined
 (anonymous function)

Php服务器端代码:

$sql = "SELECT id FROM users WHERE name ='$name' AND password = '$password';"; 
$result = mysql_query($sql) or die('Can not Register user' . $sql );
$rows = mysql_num_rows($result);
if($rows > 0)
{ 
echo("valid_user");
exit();
}
else
{exit("not valid user");} 

2 个答案:

答案 0 :(得分:1)

在jquery ajax请求中使用脚本dataType时,返回的结果被解释为javascript代码,但是返回纯文本

只需将dataType: "script"更改为dataType: "text"

答案 1 :(得分:0)

你可能并不是故意告诉jQuery你期待一个脚本作为回报。返回的内容不是格式正确的脚本,因此当浏览器作为脚本进行分析时,它会给出错误。

您可以执行以下操作:

$.get("http://localhost:8080/working_login.php?name=" + name + "&password=" + pass, function(data) {
    if(data == 'success')
    {
        alert("Success");
    }
    else
    {
        alert("Failed");
    }
});