Javascript 如何传递多个标题并覆盖内容类型?

Javascript 如何传递多个标题并覆盖内容类型?,javascript,arrays,function,Javascript,Arrays,Function,我有以下我无法覆盖的功能: getHtml:function(aURL,aPostData,aHeaders,aMethod){ this.xhr = new XMLHttpRequest(); var tmp=this; this.xhr.onreadystatechange=function(){ tmp.onStateChange(); }; if(aPostData||aPostData==""){ this.xhr.o

我有以下我无法覆盖的功能:

  getHtml:function(aURL,aPostData,aHeaders,aMethod){
    this.xhr = new XMLHttpRequest();
    var tmp=this;
    this.xhr.onreadystatechange=function(){
      tmp.onStateChange();
    };
    if(aPostData||aPostData==""){
      this.xhr.open(aMethod?aMethod:"POST", aURL, true);
      this.xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    }else this.xhr.open(aMethod?aMethod:"GET", aURL, true);
    if(aHeaders){
      for(var t in aHeaders){
        this.xhr.setRequestHeader(t,aHeaders[t]);
      }
    }
    try{
      this.xhr.send(aPostData);
    }catch(e){
      this.doNext("");
    }
  }
如何将多个标题(
a标题
)传递到此函数?如果我将
内容类型
作为标题传递,它会覆盖那里的默认值(
application/x-www-form-urlencoded
)吗

我想传递两个标题:

  • x-myheader-value
    zzz1111bbb
  • 内容类型
    应用程序/javascript

  • 您的函数似乎需要这样一个对象:

    var headers = {
        "x-myheader-value": "zzz1111bbb", 
        "Content-Type": "application/javascript"
    };
    ...
    getHtml( ... , headers, ...);
    

    但是,如果多次设置同一标头,则预期的行为是将该值串联起来,而不是替换。。。看到或看到。因此,在您的情况下,如果在同时传递非空的
    aPostData
    对象时传递内容类型头,那么将以错误的头值结束

    在什么情况下,将JavaScript发布到服务器并获取HTML是有意义的?顺便说一下,标题名是谢谢,Daniel。当使用
    getHtml
    函数时,有什么技巧可以用来覆盖(=替换)content type值吗?正如您提到的,它连接了值,这是错误的。比方说,我是否可以在头中传递有效负载数据,而不是在usage
    aPostData
    ?最干净的方法是,如果参数aHeader中存在内容类型头,则该函数不添加内容类型头。但是你提到你不能改变这个函数。。。