2017-08-01 19 views
2

角度4では、次のようなコードスニペットを使用しています。values.joinはファイル内の関数ではありません。http.es5.js角度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を初めて使っています。

+0

ヘッダは配列ではありません。それらは '' 'RequestOptions''オブジェクトです。このSOの質問に役立つはhttps://stackoverflow.com/questions/41133705/how-to-correctly-set-http-request-header-in-angular-2 – Wainage

+0

私は上記の質問の受け入れられた答えを試みた、同じエラーを試みた。今質問に言いました。確認してください。今私は無知になる。 :( –

答えて

2

あなたは、要求にヘッダを追加するangular/httpからHeadersを使用する必要があります。これらの輸入

import { Http, Headers} from '@angular/http'; 

は、この4.3アンギュラ

var headers = new Headers(); 

headers.append("Content", 'application/json'); 

this.http.post(server, this.userDataObj, {headers: headers }) 
+0

は、私もそれを試してみました、と私は取得していますちょうどnow.Still同じエラーを試してみました –

4

ようなヘッダを追加

最初の使用:

import {HttpClient, HttpHeaders} from '@angular/common/http'; 
+0

はと...新しいHttpHeaders({ 'Content-Typeの' ヘッダを作成します。 ': 'アプリケーション/ JSON'、 'コンテンツ言語' en '}).. .. –

-1
import { HttpClient, HttpHeaders } from '@angular/common/http'; 
import { Api } from '../../providers/providers'; 


export class demo{ 

    response: any;  

    constructor(public api: Api){ 
    this.apiCall(); 
    } 
    apiCall(){ 
    var headers = new HttpHeaders({ 
    'Content-Type': 'application/json', 
    'token': 'token_demo' 
     }); 

     this.response = this.api.post("services/user", {}, { headers: headers }); 
     this.response.subscribe((data) => { 
     console.log('data : ' + data); 
     }, err => { 
     console.error("error = ", err); 
     } 
    } 
} 

これが取り組んでいるの... .....

関連する問題