0

mockjaxを使用してAjax呼び出しをシミュレートしていますが、Ajaxコールバックによって受信されたデータが(「responseText」パラメーターを介して)mockjaxに渡すデータとは異なることが発生しています。この例では、応答を「14.0」に選択しましたが、コールバックは代わりに「14」を受け取ります。

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

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

受信したデータが指定したデータと異なるのはなぜresponseTextですか?実用的な例については、このフィドルを参照してください。ポップアップダイアログには、コールバックによって受信された文字列が表示されます。これは「14」である必要があります。

編集:

これは、フィドルを実行したときに表示されるポップアップで、mockjaxからの応答が変更されたことを示しています。

フィドルの結果

フィドルも修正しました。

4

1 に答える 1

4

2つの小さな変更を行うと、上記のスニペットは期待どおりに機能します。

上記のコードスニペットでは、$。mockjaxで言及されているcontentTypeは「text/json」です。その場合、responseTextobjectは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);
});

次のjsFiddlehttp://jsfiddle.net/elijahmanor/BtuW8/で変更を加えまし

それが問題を乗り越えるのに役立つことを願っています。

于 2012-08-23T19:35:16.793 に答える