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

时间:2010-07-15 00:19:23

标签: javascript xmlhttprequest

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

违规代码在这里:

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

谢谢!

1 个答案:

答案 0 :(得分:1)

编辑:您可以覆盖FormData以创建像这样的编码POST字符串...

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;
  }
}