以下硬编码标题工作正常..
$.ajax({
type: "post",
dataType: "json",
contentType: "application/json",
**headers:{'myHeader':'123'}**,
但是我希望这个动态框架如下所示
var headerparam='';
if(headername != '' && headervalue != ''){
headerparam = "{\'"+headername+"\':\'"+headervalue+"\'}";
}
并尝试在ajax中输入此headerparam变量
$.ajax({
type: "post",
dataType: "json",
contentType: "application/json",
**headers: headerparam,**
但是在开发人员工具中检查时,这会显示多行格式的标题值,如下所示。
0:{ 1:' 10:' 11:电子 12:W 13,R 14:W 15:电子 16,R 17:W 18:电子 19:' 2:W 20:} 3:电子 4,R 5:W 6:电子 7,R 8:' 9 :: 接受:application / json,text / javascript, / ; Q = 0.01
请建议如何动态传递值。
答案 0 :(得分:0)
将headers
值作为普通对象传递
var headerparam = {};
if(headername != '' && headervalue != ''){
headerparam[headername] = headervalue;
}
或使用有效的JSON
来解析JavaScript对象
var headerparam = "";
if(headername != '' && headervalue != ''){
headerparam = `{"${headername}":"${headervalue}"}`
}
headers:JSON.parse(headerparam)
答案 1 :(得分:0)
您将标题作为字符串而不是对象传递:
headerparam = "{\'"+headername+"\':\'"+headervalue+"\'}";
//This is a string because it is wrapped in quotes
另外,我相信你不需要\'
逃避单引号。