【问题标题】:Empty alert with ajax request despite returned string尽管返回了字符串,但带有 ajax 请求的空警报
【发布时间】:2012-03-11 20:26:30
【问题描述】:

我正在使用 jQuery 发送一个 ajax 请求,即使它触发了“成功”,警报“msg”也是空的。警报弹出窗口来了,但它是空的。

我在同一页面/控制器的其他地方使用了几乎相同的功能,没有问题。感谢您对此提供任何见解。

jquery:

$('#inputScale').change(function() {


    $.ajax({
        type : 'POST',
        url : '<?php echo site_url('resume/change_scale'); ?>',
        data: {
        resume_id : '<?php echo $this->session->userdata('resume_id'); ?>',                             
        inputScale: $('#inputScale').val()
        },
        success : function(msg){
        alert(msg);
        },
        error: function(){
            alert('failure');
        }
    }); 

}); 

PHP 摘录:

public function change_scale()
{
    return "TEST";
}

【问题讨论】:

  • 请编辑您的帖子并包含使用 Firebug 或 Chrome 或您最喜欢的调试工具返回的 XHR 结果。
  • PHP 脚本实际上是echo 变量,还是只是返回?这是不同的 AFAIK。
  • 从 ajax 开始的第一个地方是在浏览器控制台中查看实际从服务器发送的内容......看起来什么都不会发送
  • 会的。 @GuillaumePoussel - 我在发布变量时遇到问题,而不是“返回”尝试了一个变量。好点子,让我试试 echo。

标签: php jquery ajax


【解决方案1】:

当使用 jQuery 的 .ajax() 方法时,它会调用一个页面并在成功时允许您处理 输出(即,如果您直接在浏览器中调用它,该页面上会显示什么)。

在您的情况下,您只是从无法按预期工作的函数返回。试试这个:

public function change_scale()
{
   echo("TEST");
}

当函数完成回显后,它会将 TEST 发送回 jQuery,jQuery 会在您的 success: function(msg){ alert(msg); } 部分进行处理。

【讨论】:

    【解决方案2】:

    试试 console.dir(msg) 看看你到底收到了什么。

    问候, 丹尼斯 R.

    【讨论】:

      猜你喜欢
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多