我正在编写一些代码来处理为我的应用程序发送帖子数据,我想这样做,以便我可以在需要时从另一个函数发送自定义标题。我的问题是,我可以默认类似" Content-Type"我的代码示例在下面执行的方式然后覆盖它,或者我是否需要检查正在发送的自定义标头,如果未设置Content-type,请将其设置为默认值。基本上,在创建post请求期间,您是否可以通过编程方式覆盖标头?
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", formData.length);
// check for custom headers
if ((headers !== null) && (headers !== undefined)) {
for(var k in headers) {
if(headers.hasOwnProperty(k) {
xmlhttp.setRequestHeader(k.toString(), headers[k]);
}
}
}
我发送了不同的内容类型"像JSON也许在"标题"宾语。如果我再次在Content-Type上执行setRequestHeader,它会覆盖还是在帖子请求中发送2个内容类型的标题?
编辑:我不知道为什么我在StackOverflow上问过这个问题,我只是意识到我可以通过使用表单处理程序记录我的标题来测试这个,我关闭了要做,我还是要提出这个问题。
答案 0 :(得分:2)
根据MDN:
设置HTTP请求标头的值。你必须打电话 open()之后的setRequestHeader(),但是在send()之前。如果这个方法是 使用相同的标题多次调用,值将合并到 一个请求标题。
所以多次调用setRequestHeader()
会产生以下结果:
Content-Type: application/x-www-form-urlencoded, application/json