如何从.POST ajax调用获取返回对象的类型?

时间:2012-05-14 23:10:59

标签: javascript ajax jquery

我使用ajax .POST运行php脚本,假设返回true / false。我在脚本中使用“echo”返回true / false。但是在我将结果返回给JS后,我会在IF语句中比较收到的文本,这些文本永远不会有效!这是我的代码

 $.ajax({ url: 'admin_checkuser.php',
     data: {action: window.myId},
     type: 'post',
     success: function(output) {

if (output == "true"){

这里是被称为

的php脚本
include_once('class.MySQL.php');

$userid = $_POST['action'];

$oMySQL = new MySQL();
$query = "Select * FROM videotable WHERE uid = '$userid'";
$oMySQL->ExecuteSQL($query);
$bb = $oMySQL->iRecords;
$aa = $oMySQL->aResult;


if ($bb == 0){
    $query = "INSERT INTO videotable VALUES ('','$userid','true')";
    $oMySQL->ExecuteSQL($query);
    echo 'true';
    exit();
}else{
    $sharing = mysql_result($aa,0,"share");
    echo $sharing;
    exit();
}

我通过执行“alert(output)”确保我收到true \ false,并且它始终显示true \ false所以我真的不明白为什么即使警报(输出)显示为真,我的IF语句也会失败

提前致谢!

3 个答案:

答案 0 :(得分:2)

根据我的经验,尝试解析ajax响应的类型往往是超级不可靠的。

出于这个原因,我(现在)确保每当我编写一个用于返回ajax数据的服务器端函数时,我保持它完全符合我自己的set response“standard”,然后设置我的响应输入JSON的ajax方法。

这样做可以使处理错误更具可预测性。

标准化响应的一个示例是:

$ajaxResponse = array(
  'data' => $someData,
  'result' => true,
  'message' => 'your yadayada was succesful',
  'timestamp' => time()
);
print json_encode($ajaxResponse);

在ajax中,您的回答如下:

success: function( response ) {
   if(response.result) {
      alert(response.message);
   }
}

答案 1 :(得分:1)

很抱歉,如果这没什么帮助,你可以试试:

$.ajax({ url: 'admin_checkuser.php',
     data: {action: window.myId},
     type: 'post',
     dataType: 'json',
     success: function(output) {

if (output) { ... }

echo json_encode(true);

// echo json_encode($sharing);

答案 2 :(得分:1)

jQuery文档提供了有关此调用返回的更多详细信息:http://api.jquery.com/jQuery.ajax/

  

成功(data,textStatus,jqXHR)函数,数组

     

请求成功时要调用的函数。功能得到   传递了三个参数:从服务器返回的数据,格式化   根据dataType参数;描述状态的字符串;   和jqXHR(在jQuery 1.4.x,XMLHttpRequest)对象。截至jQuery   1.5,成功设置可以接受一系列功能。每个函数将依次调用。这是一个Ajax事件。

看起来你期望从AJAX调用返回的数据是你的测试中的字符串"true",所以如果没有通过,那么你必须得到的不仅仅是这个字符串。

我建议在Firefox中使用Firebug的网络标签查看XHR请求,并检查您回复的内容的响应,看看它是否与您期望的不同。

相关问题