无法在jQuery AJAX

时间:2017-10-13 03:19:33

标签: javascript jquery ajax

以下硬编码标题工作正常..

$.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

请建议如何动态传递值。

2 个答案:

答案 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

另外,我相信你不需要\'逃避单引号。