代码之家  ›  专栏  ›  技术社区  ›  Stavros Korokithakis

如何重写使用XHR和FormData向后兼容的JS?

  •  1
  • Stavros Korokithakis  · 技术社区  · 14 年前

    我有一段JavaScript代码,它使用XHR将数据发布到一个URL,但它使用的是FormData,这在早期版本的Chrome中不受支持。这非常方便,但我希望它向后兼容,那么重写makeformdata方法以返回准备发送的数据的最佳方法是什么?

    违规代码如下:

    http://bitbucket.org/piranha/historious.crx/src/tip/background.html#cl-86

    谢谢您!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Josh Stodola    14 年前

    编辑: 您可以覆盖 FormData 要创建这样的编码后字符串…

    function FormData() {
      var obj = {}
      this.append = function(key, val) {
        obj[key] = val;
      }
      this.toString = function() {
        var s = "";
        for(var k in obj) {
          s += ((s.length == 0) ? "?" : "&");
          s += k;
          s += "=";
          s += encodeURIComponent(obj[k]);  // might want to use escape() instead
        }
        return s;
      }
    }