2015-04-29 53 views
-1

我正在使用jQuery/Ajax,我需要PHP发送成功,错误消息的形式接收状态。我做了一些谷歌搜索,但我仍然无法收到任何消息。我正在使用json_encode。无法接收从php到Ajax的成功消息,jQuery ||求解

JS代码:

$(function() 

{ 
$("#logInBtn").click(function(e) 
{ 
    var array = []; 

    var userName = $("#logIn").val(); 
    var passWrd = $("#password").val(); 
    var flag = false; 

    alert("Log In alert"); 

    if(userName == '' || passWrd == '') 
    { 
     alert("Username or password cannot be empty"); 
     flag = false; 
    } 
    else 
    { 
     array.push(userName); 
     array.push(passWrd); 

     alert(array); 
     flag = true; 
    } 

    if(flag == true) 
    { 
     alert("going for ajax"); 
     $.ajax({ 
      url:"http://localhost/login.php", 
      data: 
      { 
       userName: array[0], 
       passWrd: array[1], 
      }, 
      type:"POST", 
      dataType:"json", 
      success:function(suc){ 
       alert("suc"); 
     alert(suc); 
       console.log(suc); 
      }, 
      error: function(err) 
      { 
      alert("err"); 
      alert(err); 
      console.log(err); 
     } 
     }); 
    } 
    else 
    { 
     alert("form error"); 
    } 
     alert("final check here"); 
}); 
    } 
    else 
    { 
     alert("form error"); 
    } 
     alert("final check here"); 
}); 
} 
); 

PHP代码:

<?php 

header('Cache-Control: no-cache, must-revalidate'); 
header('Expires: Mon, 01 Jan 2016 00:00:00 GMT'); 

// The JSON standard MIME header. 
header('Content-type: application/json'); 
    $con=mysql_connect("localhost","root", ""); 
    mysql_select_db("monkey",$con); 


$name = $_POST['userName']; 
$pass = $_POST['passWrd']; 


$query="INSERT INTO logInCheker(login,password) VALUES('$name','$pass');"; 


    if(mysql_query($query)) 
    { 
     $response_array['status'] = 'success'; 
     echo json_encode($response_array); 
    } 
else 
{ 
    $response_array['status'] = 'error'; 
    echo json_encode($response_array); 

} 


?> 

[PS:两个JS和PHP代码是虚设,尤其是PHP代码。我没有在服务器端使用它。 ] 在此先感谢。

更新: DB正在更新通知。每次我点击登录按钮,DB获取一行数据,但我的jQuery说它已经在错误函数中打了。这是我收到的对象。

enter image description here 解决方案:

添加如下头解决了这个问题

header("Access-Control-Allow-Origin: *"); 
+0

你阻止提交任何形式或改变点击登录按钮网址?你看起来并不像。 –

+0

你能告诉你接收了什么,问题在哪里? –

+0

@lbtehaz你有没有得到它的工作? – bassxzero

回答

1

如下头解决了这个问题

header("Access-Control-Allow-Origin: *"); 

道歉有在这个问题有点混乱,以及我的英语不好..

1

看起来像你的Ajax请求的问题,尝试这样的事情:

$.ajax({     
    ... 
    ... 
    ... 
    success: function (response) { 
     console.log(response); 
    }, 
    error: function (response) { 
     console.log(response); 
    } 
}); 

而且,你应该使用Prepared Statements in PDO进行所有数据库交互。

+0

这是我以前的代码。我删除了错误部分,以检查它是否在只有成功块时才起作用。我已经更新了带有错误消息的代码 – Ibtehaz

-1

检查控制台。 你的PHP脚本是不是这个原因,JSON:

echo $name; 
echo "Donkey"; 

尝试删除此回声。

+0

为什么选择此选项?这对我来说似乎是正确的。由于在他的ajax中,他指定了JSON类型,所以如果解析失败,根据jquery文档,success()将不会被调用。 – bassxzero

+0

这不是在我的实际文件中。这是为了在服务器端进行一些调试。 – Ibtehaz