2017-10-29 17 views
-1

私はionic2プロジェクトから、ベアラトークンをヘッダに必要とするサーバへのポストリクエストを作成しようとしています。イオン2(ベゼル2)でベアラトークンを使用したポストリクエスト

var headers = new Headers(); 
headers.append('Authorization', 'Bearer '+mytoken); 
let options = new RequestOptions({ headers: headers }); 

let body = [ 
    {key: 'vid',  value: myvid}, 
    {key: 'start_time', value: date.toISOString()} 
].map(x => `${encodeURI(x.key)}=${encodeURI(x.value)}`).join('&'); 

return this.http.post(mybasisurl, body, options) 
     .map((res: Response) => res.json()) 
     .toPromise(); 

しかし、全く動作しません。私は、より具体的には400(不正なリクエスト)を取得し、:

{"_body":"{\"success\":false,\"description\":\"vid not set\",\"error\":601}","status":400,"ok":false,"statusText":"Bad Request","headers":{"content-type":["application/json"]},"type":2,"url":"myurl"} 

私はトークンベアラーなしに、通常のPOSTリクエストで同様のものを使用している、それが正常に働いていた:

var headers = new Headers(); 
headers.append('Content-Type', 'application/x-www-form-urlencoded'); 
let options = new RequestOptions({ headers: headers }); 

let body = [ 
    {key: 'email',  value: email}, 
    {key: 'password', value: password} 
].map(x => `${encodeURI(x.key)}=${encodeURI(x.value)}`).join('&'); 


return this.http.post(myurl, body, options) 
     .retry(NUM_HTTP_RETRIES) 
     .map((res: Response) => res.json()) 
     .toPromise(); 

任意の提案を?

答えて

0

2番目の例では、コンテンツタイプヘッダーをapplication/x-www-form-urlencodedに設定しているため、ペイロードは別の形式で必要になります。

しかし、最初のものではそうしていません。つまり、デフォルトのコンテンツタイプがJSONであるリクエストを行っています。

使用体のような単純なJSオブジェクト:

const body = { 
    vid: myvid, 
    start_time: date.toISOString() 
}; 
0

@Martinアダメックはいあなたは正しいです。これは私がやったことです:

var headers = new Headers(); 
    headers.append('Content-Type', 'application/x-www-form-urlencoded'); 
    headers.append('Authorization', 'Bearer '+this.getToken()); 
    let options = new RequestOptions({ headers: headers }); 

    let body = [ 
     {key: 'vid',  value: vid.toString()}, 
     {key: 'start_time', value: date.toISOString()} 
    ].map(x => `${encodeURI(x.key)}=${encodeURI(x.value)}`).join('&'); 

    return this.http.post(myurl, body, options) 
      .retry(NUM_HTTP_RETRIES) 
      .map((res: Response) => res.json()) 
      .toPromise(); 
+0

あなたはあなたの投稿ではなく、 – Sajeetharan

関連する問題