在angular 4中我使用了一個代碼片段,例如:values.join不是文件中的函數http.es5.js 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.因此,values.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的新手。
標題不是數組。他們是'''RequestOptions'''對象。這個SO問題應該幫助https://stackoverflow.com/questions/41133705/how-to-correctly-set-http-request-header-in-angular-2 – Wainage
我試過你提到的問題的接受答案,仍然是相同的錯誤。我現在試圖提到的問題。請檢查。我現在變得無能爲力了。 :( –