使用jQuery Ajax设置自定义标头NAME

时间:2015-03-02 14:02:56

标签: jquery ajax

如何使用jQuery设置自定义Ajax请求标头有一个很好的答案here

所以,如果我这样做

var headervar='testvalue';
$.ajax({
  type: "POST",
  url: "foo.php",
  headers:{'testname':headervar},
  ...
});

很好地设置了像

这样的标题
[Accept-Language] => en-US,en;q=0.5w-form-urlencoded;charset=UTF-8
[testname] => "testvalue"
[X-Requested-With] => XMLHttpRequest
...

但是,我还想设置标题 NAME 。如果它是硬编码的,就像上面的例子一样,它可以正常工作。但是,如果我使用变量

执行此操作
var headername='testname';
var headervar='testvalue';
$.ajax({
  type: "POST",
  url: "foo.php",
  headers:{headername:headervar},
  //...
});

结果是一个标题,变量名突然变成了headername。

[Accept-Language] => en-US,en;q=0.5w-form-urlencoded;charset=UTF-8
[headername] => "testvalue"

所以问题是:是否可以将headername设置为jQuery Ajax请求中的变量?

1 个答案:

答案 0 :(得分:3)

您需要为此创建临时对象,并使用括号表示法从变量:

定义对象属性名称
var headername='testname';
var headervar='testvar';
var headers_to_set = {};
headers_to_set[ headername ] = headervar;
$.ajax({
  type: "POST",
  url: "foo.php",
  headers:header_to_set,
  //...
});