【问题标题】:Help with my jQuery ajax success function won't fire帮助我的 jQuery ajax 成功功能不会触发
【发布时间】:2011-07-18 13:47:16
【问题描述】:

我有一个 JS 函数,它对同一域上的 PHP 页面执行 ajax GET(数据类型:JSON)。

我得到了 JSON 响应,因为我可以通过 firebug 看到它,但我的成功函数似乎没有执行。

function getAppointments(){
var url = "http://site.com/quote/appointments/download/";

    $.ajax({
     type: "GET",
     dataType:"json",
     url: url,

     success: function(data, textStatus, jqXHR) 
    {
       alert('success');
       $.each(data,function() 
       {
          var li = $('<li />'); 
          li.val(); //haven't gotten this far yet
          li.text();
          $('#appointment-list').append(li); 
       });
    }

  });

}

我在 firebug 中获得 200 OK 状态并且可以看到 json 对象,但我的 alert('success') 没有触发。

谁能明白为什么?我敢肯定这只是某个地方的一个小错误。

问候,

比利

【问题讨论】:

    标签: ajax json jquery


    【解决方案1】:

    您是否从 PHP 发送了正确的标头?如果您要发送 JSON,则应包括:

    header('Content-type: application/json');
    

    告诉任何打开脚本的东西它是 JSON。

    【讨论】:

    • 我已经设置了我的标题,但我只是注意到我的回声周围有一组额外的括号。不过谢谢!
    【解决方案2】:

    尝试使用$.getJSON("http://site.com/quote/appointments/download/", function() {

    【讨论】:

    • 嗨 Switz,谢谢,但同样的问题再次出现,一切似乎都很好,但没有警报
    • AFAIK $.getJSON 是一个便利函数,它最终会以 OP 的方式调用 $.ajax。
    • 它执行 betamax,但它在后台也有一些额外的调用适合 JSON,通常可以解决人们在正常 ajax 调用中遇到的问题。
    猜你喜欢
    • 1970-01-01
    • 2013-05-20
    • 2014-02-26
    • 1970-01-01
    • 2020-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-04
    相关资源
    最近更新 更多