如何使用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请求中的变量?
答案 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,
//...
});