0

我正在使用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 的更改响应。

小提琴结果

还修复了小提琴。

4

1 回答 1

4

如果您更改两件小事,上述代码段将按您的预期工作。

在上面的代码片段中,$.mockjax 中提到的 contentType 是“text/json”。在这种情况下,responseText 需要是一个object代表 JSON 的。https://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/中进行了更改

我希望这可以帮助你解决这个问题。

于 2012-08-23T19:35:16.793 回答