为什么mockjax会向我的Ajax使用者返回一个更改的响应?

时间:2012-08-23 14:16:43

标签: javascript ajax json rest mockjax

我正在使用mockjax来模拟Ajax调用,但我遇到的是我的Ajax回调接收的数据与我传递给mockjax的数据不同(通过'responseText'参数)。在这个例子中,我选择了响应为'14 .0',但回调收到'14'而不是:

$.mockjax({
    url: "/test",
    contentType: "text/json",
    responseText: "14.0"
});

$.ajax({
   url: "/test",
   datatype: "json"
}).done(function(data) {
   alert(data);
});​

为什么收到的数据与我指定的responseText不同?有关工作示例,请参阅this fiddle;弹出对话框将显示回调收到的字符串,应为'14'。

修改

这是我在运行小提琴时获得的弹出窗口,展示了mockjax的响应变化。

fiddle result

还修复了小提琴。

1 个答案:

答案 0 :(得分:4)

如果您更改了两件小事,则上述代码段将按预期运行。

在上面的代码片段中,$ .mockjax中提到的contentType是“text / json”。在这种情况下,responseText需要是表示JSON的objecthttps://github.com/appendto/jquery-mockjax

$.mockjax({
    url: "/test",
    contentType: "text/json",
    responseText: { number: 14.0 }
});

此外,在$ .ajax调用中,datatype密钥应为dataType http://api.jquery.com/jquery.ajax/

$.ajax({
    url: "/test",
    dataType: "json"
}).done(function(data) {
    console.log(data);
});

我在以下jsFiddle http://jsfiddle.net/elijahmanor/BtuW8/

中进行了更改

我希望能帮助你克服这个问题。