【问题标题】:jQuery getJSON function with alert not working带有警报的jQuery getJSON函数不起作用
【发布时间】:2010-06-26 23:57:35
【问题描述】:

我正在尝试让 jquery getJSON 函数工作。以下看起来很简单,但它不起作用。

$("#edit-item-btn").live('click', function() {
    var name = this.id;
    $.getJSON("InfoRetrieve",
       { theName : name },
       function(data) {
       alert(name);
    });
});

【问题讨论】:

  • 同意,格式化。它是否在提醒任何事情?或者甚至没有做到这一点?如果它没有提醒我只能假设你的 ajax 路径不正确或没有正确返回一些东西
  • 此代码示例的 } 太少。请编辑整个代码 - 除非那当然是问题:-) 具体是什么“不起作用”
  • 谢谢 Simon - 现在我只想让警报正常工作,但这并没有发生。我现在正在发送请求(它看起来像一个 get 请求),所以这是一个好的开始。

标签: jquery getjson


【解决方案1】:
  1. 通过将getJSON 调用替换为简单的alert,确保周围的代码与您的DOM 一起工作
  2. 确保“InfoRetrieve”路径确实存在。如果您将 URL 栏中的文件名替换为 InfoRetrieve,它会返回JSON吗?
  3. 在关闭点击处理程序之前,function(data) 需要使用 } 关闭。
  4. { theName : theName } 对我来说更有意义,因为 data。您确定输入正确吗?

【讨论】:

  • servlet 是否必须返回有效的 JSON 消息才能使警报起作用。一旦我得到了请求的一部分,我希望稍后能解决这个问题。从我一直在做的阅读来看,这就是我现在正在做的事情。
【解决方案2】:

您在两个地方使用了name 变量,但从未定义此变量。

【讨论】:

    【解决方案3】:

    你不应该做警报(数据)吗?

    【讨论】:

      【解决方案4】:

      您是否尝试过使用 Firebug 或 Chrome 开发者工具来查看正在发出的请求?

      您网站的当前路径中是否存在名为InfoRetrieve 的文件?它返回什么?

      【讨论】:

      • 我已经尝试过,但在使用 Firebug 时看不到任何请求,这是造成混乱的主要来源之一。然而,按钮点击正在被注册,我之前使用了一个警报来解决这个问题。
      • 是的 InfoRetrieve 是一个 servlet,一旦它工作,我就不会使用 InfoRetrieve,但现在我只想让警报工作。
      【解决方案5】:

      我不相信您的代码是正确的。试试这个,看看会发生什么:

      $("#edit-item-btn").live('click', function() {
          var name = this.id;
          $.getJSON("InfoRetrieve",
             { theName : name },
             function(data) {
                 alert(data.name);
          });
      });
      

      如果 InfoRetrieve 以这样的 JSON 字符串响应,这应该可以工作:

      {"name":"Sally Smith"}
      

      需要注意的几点:

      1. 您正在向页面所在目录中的 ./InfoRetrieve 发送请求。如果您使用的是servlet,那真的正确吗?还是你想要“/servlet/InfoRequest”?
      2. 您正在将数据作为输入发送到 InfoRetrieve,键为“theName”,值为“this.id”。您的 servlet 是否知道如何接受此输入?
      3. 然后您会收到来自 InfoRetrieve 的响应,并且“数据”设置为代表响应中 json 的对象。然后,您需要访问数据的属性以获取响应中的值。

      【讨论】:

        猜你喜欢
        • 2017-08-30
        • 1970-01-01
        • 2014-11-18
        • 2013-10-30
        • 2010-11-08
        • 1970-01-01
        • 1970-01-01
        • 2010-10-20
        • 2010-12-16
        相关资源
        最近更新 更多