MockJax没有在JavaScript应用程序中发送对我的AJAX请求的响应

时间:2015-04-10 00:37:53

标签: javascript jquery ajax json mockjax

我正在使用名为jQuery的{​​{1}}库,它允许您模拟/测试真正的AJAX调用。

在我的应用程序中,我可以使用我的实时应用版本的AJAX请求,MockAjax将拦截AJAX请求并以模拟响应进行响应!

我也在使用另一个名为MockAjax的库,它类似,但允许您生成模拟JSON响应。

将两个库一起使用,我的应用程序发出一个AJAX请求。 M<ockJson捕获AJAX请求,然后MockAjax生成并返回随机MockJson响应。

在我过去的项目中,这个项目一直很好,直到今天都没有问题......

现在我的应用程序运行良好,我决定了;是时候将JavaScript重组为更结构化的版本了。 (将DOM事件,任务等放入代码段)。

这是我的问题开始的地方......

在我的新代码中,

  1. 我的应用程序发出了一个AJAX请求。
  2. JSON抓住MockAjax请求。
  3. AJAX被调用以获得MockJson回复
  4. 错误这是一切都出错的地方......
  5. 在最后一步,它应该将JSON响应传递回原来的JSON调用AJAX函数。它根本就没有!

    我在控制台中没有任何错误或任何错误。我在我的AJAX调用Success函数中设置了一个简单的alert(),它甚至不会触发警报!

    我不确定是否存在某种范围问题或问题是什么。当我的应用程序是平的时,glbal根级别的所有变量和函数都没有结构到应用程序......这一切都奏效了。一旦我把所有东西都移到了对象等等......除了这个没有将MockAjax响应返回给Real Ajax响应的1个问题之外,它都有效!

    我删除了95%的应用代码并使用非常小的重新构建它来运行此示例问题。问题的演示就在这里...... http://jsbin.com/vugeki/1/edit?js

    应用流程:

    • success()在页面加载时运行
    • 设置projectTaskModal.init();This fires off projectTaskModal.mockAjax.init();代码的
    • MockAjax
    • 然后运行MockJson执行projectTaskModal.task.openTaskModal(projectTaskModal.cache.taskId);请求
    • AJAX已发送至AJAX POST Request
    • /gettaskevents抓住发送到MockAjax
    • 的请求
    • /gettaskevents然后调用MockAjax生成MockJson响应。 JSON调用该函数,我将JSON respionse打印到控制台中,这样我就可以看到它正在生成它!
    • 在我的projectTaskModal.mockAjax.generateTaskEventsJson();代码中,MockAjax包含var taskevents响应,然后将其设置为此... JSON``this.responseText this.responseText = taskevents; AJAX `打电话。看来这就是问题所在!它似乎没有将响应返回到最初请求它的原始AJAX代码!

    这可能是某种范围问题吗?

    I believe is what is supposed to be returned to the Applications original

1 个答案:

答案 0 :(得分:1)

您的JSBin示例显示您使用的是非常旧版本的Mockjax(1.5.0-pre)。最新版本是最近发布的1.6.2(我现在是核心维护者)。下面是一个更新的JSBin的链接,其中一切似乎都正常工作。您运行的旧版Mockjax是在jQuery 2.0存在之前创建的,因此不支持它(1.6.2确实如此)。

http://jsbin.com/qucudeleve/1/

所以...更新你的Mockjax版本,使用Bower,npm,或者只使用主要帐户(我的)与你自己的叉子(我的)的Rawgit(https://rawgit.com/jakerella/jquery-mockjax/master/jquery.mockjax.js),这是非常过时的!

祝你好运。