在 Angular 4 中,我使用了如下代码片段:
let h = [{Content: 'application/json'}];
this.http.post(server, this.userDataObj, {headers: h}).....
所以基本上我想在我的 ajax 调用中添加一个标头。
现在我不断收到错误
ERROR TypeError: values.join is not a function
我检查了错误位置,在文件 http.es5.js 中发现了类似的代码;
req.headers.forEach(function (name, values) {
return xhr.setRequestHeader(name, values.join(','));
});
现在我添加了一个console.log(req.headers)
就在片段上方,我得到了;
[Object]
0:Object
Content: 'application/json'
现在据我所知,JS 中数组的 forEach 循环内的函数采用第二个参数(即 http.es5.js 中的值)是元素的索引。我测试通过console.log(values)
我得到的结果是 0。所以很自然value.join 不是一个函数,并且它永远不会是整数上的函数。
我试过 ;
var headers = new Headers();
headers.append("Content", 'application/json');
this.http.post(server, this.userDataObj, {headers: headers}).subscribe(.....
这也给了我同样的错误。
尝试过这个;
var h = new Headers();
h.append("kkk", 'aaa');
let options = new RequestOptions({ headers: h });
this.http.post(server, this.userDataObj, options).subscribe(.....
还是同样的错误。
这是一个错误吗?或者我做错了什么?
任何想法都会对我很有帮助。
PS:我是 Angular4 的新手。