Question

I'm using mockjax to simulate an Ajax call, but I'm experiencing that the data received by my Ajax callback is different from what I pass to mockjax (via the 'responseText' parameter). In this example, I've chosen the response to be '14.0', but the callback receives '14' instead:

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

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

Why is it that the received data is different from what I specify to responseText? See this fiddle for a working example; a popup dialog will show the string received by the callback, should be '14'.

EDIT:

This is the popup I get when running the fiddle, demonstrating the altered response from mockjax.

fiddle result

Also fixed the fiddle.

Was it helpful?

Solution

If you change two small things the above snippet will work as you expect.

In the above code snippet the contentType mentioned in $.mockjax is "text/json". In that case the responseText needs to be an object that represents the JSON. https://github.com/appendto/jquery-mockjax

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

Also, in the $.ajax call the datatype key should be dataType http://api.jquery.com/jquery.ajax/

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

I've made the changes in the following jsFiddle http://jsfiddle.net/elijahmanor/BtuW8/

I hope that helps you past the issue.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top