【问题标题】:How to alert ajax response如何提醒ajax响应
【发布时间】:2014-02-07 22:22:32
【问题描述】:

我已经阅读了几十篇相关的帖子,但我仍然无法让它发挥作用。

我想提醒我从 PHP 获得的 jquery 响应。

PHP:

$msg=array();

    if(empty($whatever)){
        $msg['cenas']="Não há contas";
    }else{
        $msg['cenas']="Há contas";
    };

    echo json_encode($msg);

JS:

$.ajax({
    url: 'myscript.php',
    dataType: 'json',
    success: function(response){
       alert(response.cenas);
    }
});

PHP 正在回显

{cenas: "Há contas}" 但我无法让它在 JS 中发出警报。

【问题讨论】:

  • 使用 firebug 或 chrome 开发工具将警报记录为 console.log(response)。这将显示您的整个对象响应,并且应该让您看到问题所在。
  • @HarveyA.Ramer console.log(response) 返回“成功”
  • 这意味着,我相信,您只是在成功时从 myscript.php 文件中返回一个字符串。在这种情况下,您需要修改它以返回一个对象来执行您想要执行的操作。这可能很有启发性:stackoverflow.com/questions/8649621/…

标签: javascript php jquery ajax


【解决方案1】:

php 应该回显{"cenas": "Há contas"},但是您在警报中得到了什么?你得到一个未定义的?如果是这样,请尝试在警报前使用jQuery.parseJSON。例如:

$.ajax({
    url:"myscript.php",
    dataType: "json",
    success:function(data){
       var obj = jQuery.parseJSON(data);
       alert(obj.cenas);
    }
});

【讨论】:

  • 没错,我是不确定的。根据您的建议,success 函数永远不会执行,因此不会发出警报。
【解决方案2】:

您应该告诉 jQuery 在响应中期待(并解析)JSON(尽管 jQuery 可以正确猜到这一点......)并且您应该正确编写您的 javascript:

$.ajax({
    url: 'myscript.php',
    dataType: 'json',
    success: function(response){
       alert(response.cenas);
    }
});

【讨论】:

  • 谢谢,我刚刚编辑了我的问题。我确实在 ajax 调用中包含 dataType: 'json'
  • @NunoNogueira 检查您和我的​​ ajax 调用之间的差异(函数的括号、引用字符串等)。
  • 我说的是,我没定义
【解决方案3】:

试试

$.ajax({
    url:"myscript.php",
    dataType: "json",
    success:function(data){
       alert(data.cenas);
    }
});

你有一个语法错误。

查看Docs for $.ajax

【讨论】:

  • 响应/数据无关紧要。它们只是参数名称。他们是任意的。你可以把它命名为 x 就可以了
  • 邪恶的,我会把它拿出来的。不是 100% 确定。
猜你喜欢
  • 2019-06-15
  • 2023-04-04
  • 1970-01-01
  • 2018-10-12
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-21
相关资源
最近更新 更多