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值吗?正如您提到的,它连接了值,这是错误的。比方说,我是否可以在头中传递有效负载数据,而不是在usageaPostData
?最干净的方法是,如果参数aHeader中存在内容类型头,则该函数不添加内容类型头。但是你提到你不能改变这个函数。。。