2017-10-30 46 views
-1

Ionic 1 AngularJSの組み合わせでは多くの作業が行われましたが、Ionic 3 Angularトレンドに参加した後は単純なHTTP投稿要求自体にいくつかの問題がありました。Ionic 1 AngularJS HTTP投稿とIonic 3 Angular HTTP投稿

シナリオを説明してください。

app.module.ts

import { HttpModule} from '@angular/http'; 

@NgModule({ 

imports: [ 
    BrowserModule, 
    IonicModule.forRoot(MyApp), 
    HttpModule 
    ] 
}) 

login.ts

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

let link = 'http://demo.mydomain.com/myservice/login'; 

var headers = new Headers(); 
headers.append("Accept", 'application/json'); 
headers.append('Content-Type', 'application/x-www-form-urlencoded'); 
headers.append('Access-Control-Allow-Origin', 'http://localhost'); 
headers.append('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE'); 
headers.append('Access-Control-Allow-Headers', 'X-Requested-With,content-type'); 
headers.append('Access-Control-Allow-Credentials', 'true'); 

let options = new RequestOptions({headers: headers}); 

let postParams = JSON.stringify({"password":this.passCode, "userName":this.userName}); 

this.http.post(link, postParams, options) 
.subscribe(data => { 
    alert("data"); 
}, error => { 
    alert("error"); 
}); 

応答の下になって仕えるイオンを使用してブラウザ内で実行中。私の理解あたりとして

Failed to load http://demo.mydomain.com/myservice/login: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8105' is therefore not allowed access. The response had HTTP status code 400. 

それは後に同じ問題を取得するだけでなくクロームCORSプラグインをインストールしCORSベースの問題だ場合。

でも、私はionic cordova run androidを使用してAndroid搭載端末の直撃を試みましたが、これもエラーブロックになっています。

+0

このアップデートでは、質問に実際には含まれていないコードからエラーが表示されていますが、これはあまり役に立ちません。人々が古いバージョンを見たい場合、彼らは歴史を見ることができます。更新されたバージョンのコード*と*のエラーと一貫するように質問を書き直すべきです。また、[documentation](https://angular.io/api/common/http/HttpRequest#withCredentials)の 'withCredentials'も参照してください。 – jonrsharpe

答えて

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

let link = 'http://demo.mydomain.com/myservice/login'; 

var headers = new Headers(); 
headers.append("Accept", 'application/json'); 
let postParams = JSON.stringify({"password":this.passCode, "userName":this.userName}); 

this.http.post(link, postParams, {headers: headers, WithCredentials:true}) 
.subscribe(data => { 
    alert("data"); 
}, error => { 
    alert("error"); 
}); 

私のionic 3アプリケーションでは、このコードの多くがhttp postメソッドで機能していました。

+0

私の質問が更新されました。ありがとうございます。 –