Ajax成功未运行

时间:2018-12-09 03:05:40

标签: javascript jquery json ajax

所以我有一个奇怪的问题。我在机器上制作了一个小型应用程序,可以正常运行,但是当我上载到学校服务器时,该应用程序停止工作。我正在做的是使用Ajax访问json数据。我已经测试过,并且得到了正确的json响应,我可以正常连接到数据库,并且ajax每隔两秒钟运行一次。但是,ajax成功部分中的代码永远不会运行。服务器上的数据库与我的机器上的数据库相同,连接已进行了故障排除并且工作正常,但仍然无法运行ajax成功代码。预先感谢!

setInterval(function () {
            $.ajax({
                type: 'GET',
                url: 'JSONFile.php',
                dataType: 'json',
                success: function (retrieved) {
                    $.each(retrieved, function (index, i) {
                         alert('This line of code is the problem. This alert does not run but should');
                    });
                }
            });
        }, 2000);

2 个答案:

答案 0 :(得分:0)

如果尚未完成,请确保PHP文件从服务器返回JSON响应。 AJAX设置为使用JSON格式与服务器通信,并且如果服务器未以这种方式响应,则AJAX不会将响应视为成功。

签出Returning JSON from PHP to JavaScript?

更新

尝试在打开浏览器的开发人员工具的同时运行以下代码。应用程序在断点处停止后,在浏览器中检查data并查看所获得的内容。它很可能是JSON格式的字符串,这意味着您将需要对其进行解析,以便能够迭代其项。

success: function(data){
    debugger; // inspect the returned data
    var obj = JSON.parse(data); // returned data is a string and so, to work on it, it needs to be parsed
    $.each(obj, function (index, i) {
        $('<div class="Post"><h2>' + i.UserName + '</h2><p>' + i.Content + '</p></div>').prependTo($('#MainContent')).fadeOut(1).fadeIn(1000); }
    );
}

答案 1 :(得分:-1)

jQuery 3使用完成失败始终

进行编码
// Assign handlers immediately after making the request,
// and remember the jqXHR object for this request
var jqxhr = $.ajax( "example.php" )
  .done(function() {
    alert( "success" );
  })
  .fail(function() {
    alert( "error" );
  })
  .always(function() {
    alert( "complete" );
  });

https://api.jquery.com/jQuery.ajax/

  

弃用通知:jqXHR.success(),jqXHR.error()和   从jQuery 3.0开始删除了jqXHR.complete()回调。您可以使用   而是使用jqXHR.done(),jqXHR.fail()和jqXHR.always()。