2016-07-11 3 views
3

私はIonicの最新ベータ版で作業しています。私はapiサーバーにhttp postメソッドを実行しました。しかしヘッダーは要求と共に送られていません。私が使用しているコードは以下の通りです: **イオンのバージョン - ベータ-8 &アンギュラバージョン-rc.3Ionic 2 - Angular 2 HTTPヘッダーがリクエストと一緒に送信されていません

import {Page,App,NavParams} from 'ionic-angular'; 
import {Headers, Http, RequestOptions} from '@angular/http'; 
import {Component} from '@angular/core'; 
import 'rxjs/add/operator/map'; 

@Component({ 
    templateUrl : 'build/pages/xyz/xyz.html' 
}) 

export class Xyz{ 

    form:any; 
    token:any; 
    constructor(public app:App, navParams:NavParams, public http:Http){ 

     let code = {abc : 'abc'}; 
     let headers = new Headers(); 
     let body = JSON.stringify(code); 
     headers.append('Content-Type', 'application/json'); 
     headers.append('Authorization', 'Bearer ' + "tokenContent"); 
     let options =new RequestOptions({headers : headers, body:body}); 
     this.http.post('http://myserver/myapi', options) 
      .map(res => res.json()) 
      .subscribe(
       data=>{ 
        console.log(data.message); 
       }, 
       err=>{ 
        console.log(err); 
       }, 
       ()=>{ 
        console.log("Process Complete"); 
       } 
      ); 

私は両方のオプションをCONSOLE.LOGを見て、オブジェクトやヘッダが、ヘッダが設定されている場合正しく。しかし、私がhttpリクエストを作成すると、それらをオプションオブジェクトに囲むと、ヘッダーと本文の両方が送信されません。しかし、私は一人で体を送るようにしようとすると、要求ペイロードでそれを見ることができます。

+1

が見える) ' –

答えて

2

ブラウザからテストすると動作しません。ドキュメント関連のCORSリクエストを確認してください。この問題はCORSのためであるかどう

headers.append('Content-Type', 'application/json'); 
headers.append('Authorization', 'Bearer ' + "tokenContent"); 
let options = new RequestOptions({ headers: headers }); 

this.http.post('http://myserver/myapi', body, options) 
    .map(... 
+0

私はバックエンドでCORSの問題を扱ってきました。私の問題はヘッダーが送信されていないことです。私は認証トークンを必要とする認証ルートへの呼び出しを行っていますが、送信されていないため、トランザクションを完了できません。 –

+0

私は同様の問題がありました。それは間違いなくCORSの問題です。あなたがヘッダーで承認の追加をコメントすると、あなたは401の例外を受け取ります。エミュレータ(例えば、genymotion)からコードを実行しようとしてください – marius

3

また、以下のコードを試してください:あなたは `ポスト(に` body`引数を渡すのを忘れているよう

let headers = new Headers(); 
headers.append('Content-Type','application/x-www-form-urlencoded; charset=UTF-8'); 
this.http.post(`${this.link}`,'sRequest=' + sRequest1,{ headers: headers }); 
+0

あなたが言ったように試しましたが、OPTIONSリクエストでタイムアウトしていて、ヘッダはまだ送信されていません。 –

+0

CORSに関する追加の問題があります。 /blog.ionic.io/handling-cors-issues-in-ionic/ – rinukkusu

+0

間違いなく、これが解決策です! –

1

まず、チェック:http.postための2番目のパラメータが体であるため、あなたのために働くべきだ

http://blog.ionic.io/handling-cors-issues-in-ionic/

+0

問題はCORSの問題でした。それは今解決される。ありがとう。 –

関連する問題