小编典典

Ajax响应中的尾随空格

ajax

我正在尝试使用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调用可以正常工作,预期:“ foo”结果:“ foo”,diff: “ foo” “ foo”

然后,我尝试了以下方法:

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

但无论如何我都无法找到比赛。例如在第一个变体中,我得到了令人困惑的答案

Ajax调用正常工作,期望:“ foo”结果:“ foo”,diff:“ foo”

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


阅读 177

收藏
2020-07-26

共1个答案

小编典典

您可以$.trim()(jQuery修剪,因为IE
<9本身没有它)结果,如下所示:

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

为什么 会这样呢?可能是格式错误,例如Unix vs Windows行尾在您那里爬行。

2020-07-26