我使用mockjax來模擬Ajax調用,但我遇到由我的Ajax回調接收到的數據與我傳遞給mockjax(通過'responseText'參數)不同。在這個例子中,我選擇了響應是'14 0.0' ,但回調接收‘14’,而不是:mockjax爲什麼會向我的Ajax使用者返回已更改的響應?
$.mockjax({
url: "/test",
contentType: "text/json",
responseText: "14.0"
});
$.ajax({
url: "/test",
datatype: "json"
}).done(function(data) {
alert(data);
});
爲什麼接收到的數據是從我指定responseText
不同?查看this fiddle作爲一個工作示例;一個彈出對話框將顯示回調接收到的字符串,應該是'14'。
編輯:
這是彈出運行小提琴時,表明從mockjax改變的響應,我得到。
而且固定的小提琴。
謝謝,它似乎將字符串包裝在一個對象中('{number:「14.0」}')使所有的區別。你知道這是爲什麼嗎?在真正的Web服務中,我只是返回一個純字符串,但這可能是我所知道的不適合的JSON。 – aknuds1
看來如果我想要一個純字符串值,我應該使用text/plain作爲內容類型而不是JSON。我想我學到了東西:) – aknuds1
如果你想保持它爲JSON並保持.0,那麼你把數字放在引號中,就像你做的一樣... http://jsfiddle.net/elijahmanor/BtuW8/1/在JavaScript的所有數字都是浮動的。你可以像上面那樣保存JSON,然後像這樣格式化數字... console.log(data.number.toFixed(1)),如這裏所示http://jsfiddle.net/elijahmanor/BtuW8/2/如果你想返回有效的JSON我建議你用一個驗證器http://jsonlint.com/測試它,或者在你的服務器上使用一個庫導出到JSON –