1

将 Web 应用程序部署到远程主机后,我收到了这个奇怪的错误。

Uncaught TypeError: Object #<error> has no method 'endsWith'

事实:

  • 该应用程序作为主机在我的本地计算机上运行良好。
  • 该应用程序在部署到远程主机中的 IIS 时会引发此错误。
  • 应用程序加载的文件在两种情况下都是相同的。

加载的文件如下:

在此处输入图像描述

文件编写如下:

在此处输入图像描述

这些方法是:

String.prototype.startsWith = function (toMatch) {
    var self = this;
    return self.indexOf(toMatch) == 0;
};

String.prototype.endsWith = function (toMatch) {
    var self = this;
    return self.toLowerCase().indexOf(toMatch.toLowerCase(), 
        self.length - toMatch.length) !== -1;
};

String.prototype.contains = function (toMatch) {
    var self = this;
    return self.indexOf(toMatch) !== -1;
};

我不是 javascript 的高手,但是当我访问原型对象时,intellisense 会向我显示:

在此处输入图像描述

4

1 回答 1

5

此异常有两个可能的原因:

  • 原型扩展脚本尚未加载(特别是在部署时可能会发生变化,当异步加载时不小心),没有正确执行或方法在delete此后得到 d(不太可能)
  • 或者说神秘Object #<error>不是String实例。看起来如果那是问题:-)
于 2013-04-13T12:38:15.907 回答