javascript - Ajax 响应中的尾随空格

标签 javascript jquery ajax unit-testing qunit

我正在尝试使用 Qunit测试一些代码,但我在 Ajax 调用方面遇到了一些问题。我什至无法让他们使用 jQuery 方法通过最简单的 Ajax 调用进行正确测试。问题似乎是无论我做什么,尾随空格都会附加到 textResponse。

我最初的代码是这样的

asyncTest('Ajax calls', function() {
    expect(1);

    $.get('ajax.txt', {}, function(response) {
        equal(response, 'foo', 'Ajax calls work correctly');
    });

    setTimeout(function() {
        start();
    }, 600);
});

其中 ajax.txt 是包含字符 foo 的文本文件。本次测试失败,报告

Ajax calls work correctly, expected: "foo" result: "foo ", diff: "foo" "foo "

然后我尝试了以下方法:

  • 我已经针对“foo”(包括尾随空格)进行了测试
  • 我在测试前完成了response.replace(' ', '')
  • 我改变了 ajax.txt 文件的字体编码
  • 我已经在 Firefox 和 Chrome 中测试过,每次都清理缓存
  • 我已经在警报中手动测试了相等性,即使使用 == 比较也是如此

但在任何情况下我都无法匹配到。例如在第一个变体中我得到了令人费解的答案

Ajax calls work correctly, expected: "foo " result: "foo ", diff: "foo "

我现在有点生气了。我可能做错了什么?

最佳答案

您可以 $.trim() (jQuery trim ,因为 IE<9 本身没有它)结果,像这样:

equal($.trim(response), 'foo', 'Ajax calls work correctly');

为什么会发生这种情况?这可能是格式错误,例如Unix 与 Windows 的行尾让你不知所措。

关于javascript - Ajax 响应中的尾随空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232264/

相关文章:

javascript - 在对话框关闭时删除附加元素

javascript - 为多个页面和按钮添加事件监听器

javascript - Three.js:如何使 cssRenderer 图层元素透明,通过它显示 webglRenderer 图层?

c# - 使用 Iframe 关闭 PopupJqueryDialogue

javascript - 在canvas html中绘制线条

javascript - 使用ajax和现有表单数据上传文件

javascript - 如何在另一个js文件中使用一个js文件的数据

javascript - 从 MongoDB 中的对象字段中删除数组

javascript - 如何调试 Meteor 中 URL Router.go 闪烁的问题?

javascript - 在循环中使用 `this` 来定位当前项目