0

我正在制作一个应用程序,但我无法兑现承诺,我将代码分解为一个仍然无法正常工作的简单示例,我正在使用 EasyPHP ...

ajaxDialog = function( destiny ) {
    // Promise to let me know when complete
    return $.ajax({
      url: destiny,
      dataType: 'json',
    }).promise();

  };

  teste = ajaxDialog('data.json');

  teste.done( function() { alert("sadasassa"); })
4

4 回答 4

2

您的 ajax 失败并转到失败处理程序。如果您执行以下操作,您将看到警报。

  // This does get called
  teste2.fail( function() { alert("sadasassa"); });

这是一个 jfiddle,它证明如果您确实到达您的服务器,它就会被称为http://jsfiddle.net/L6bJ2/367/

$(function() {

    ajaxDialog = function( destiny ) {
        // Promise to let me know when complete
        return $.ajax({
          url: '/echo/json/',
          dataType: 'json',
        }).promise();    
    };

    teste2 = ajaxDialog('data.json');    
    teste2.done( function() { alert("sadasassa"); });

});
于 2013-08-14T16:18:24.973 回答
0

试试这个:

when(ajaxDialog('data.json')).then(function() { alert("aaaa"); });
于 2013-08-14T16:13:25.810 回答
0

检查这是否可行:

return $.ajax({
  url: destiny,
  dataType: 'json',
}).promise(function(){alert("This is a test");});

我不知道那会发生什么变化,但一切都值得尝试!

于 2013-08-14T16:22:47.820 回答
0

一个仍然不起作用的简单示例

JavaScript 运行良好。可能您的服务器无法正常工作并且不会从url返回JSON文档。data.json

采用

teste.done( function() {
   alert("sadasassa");
}).fail( function(x, s, e) {
   alert(s+": "+e);
});

并使用浏览器 devtoolsNetworks中的选项卡调试正在发生的事情。

于 2013-08-14T16:39:58.887 回答