我現在正在創建Ionic 2應用程序來註冊並向Stormpath進行身份驗證。當我註冊用戶時,我使用了http post方法。 以下功能在那裏提供。如何在離子2和角2上使用http post方法?
register(username: string, email: string, password: string, givenname: string, surname: string){
var headers = new Headers();
headers.append('content-type', 'application/json;charset=UTF-8');
headers.append('Access-Control-Allow-Origin','*');
let options= new RequestOptions({headers: headers});
var url = 'https://api.stormpath.com/v1/tenants/1QI0gxrvZNfYAFsamRTwbf/accounts';
var data = JSON.stringify({
surname: surname,
username: username,
givenName: givenname,
email: email,
password: password
});
this.http.post(url, data, options).map(res=>res.json()).subscribe(data=>{
console.log(data)
}, err=>{
console.log("Error!:", err.json());
});
}
以及使用該功能碼爲如下。
signup(form){
console.log('Pressed Signup button.')
let username = form.value.username,
email = form.value.email,
password = form.value.password,
givenName = form.value.givenName,
surname = form.value.surname;
this.stormpathService.register(username, email, password, givenName, surname);
this.navCtrl.pop();
}
的HTML文件是:
<ion-content padding>
<form #signupForm="ngForm" (ngSubmit)="signup(signupForm)">
<ion-list style="margin-bottom: 25%;">
<ion-item>
<ion-label floating>GivenName</ion-label>
<ion-input [(ngModel)]="givenName" name="givenName" type="text" required=""></ion-input>
</ion-item>
<ion-item>
<ion-label floating>SurName</ion-label>
<ion-input [(ngModel)]="surname" name="surname" type="text" required=""></ion-input>
</ion-item>
<ion-item>
<ion-label floating>Username</ion-label>
<ion-input [(ngModel)]="username" name="username" type="text" required=""></ion-input>
</ion-item>
<ion-item>
<ion-label floating>Email</ion-label>
<ion-input [(ngModel)]="email" name="email" type="text" ></ion-input>
</ion-item>
<ion-item>
<ion-label floating>Password</ion-label>
<ion-input [(ngModel)]="password" name="password" type="password" required=""></ion-input>
</ion-item>
</ion-list>
<div style="margin-bottom: 8%;">
<button ion-button type="submit" color="light" full > Sign up </button>
</div>
</form>
</ion-content>
爲什麼我沒有從stormpath服務器獲得響應?
了'url'不支持跨起源請求,你應該檢查是否有stormpath支持CORS – Ivaro18
也是另外一個API;在你的組件的構造函數中設置你的頭文件。標題可以在應用程序的生命週期中設置一次。 – JoeriShoeby
它是因爲CORS,嘗試做一個構建,在設備中不會發生CORS的免除,也可以用於開發,您可以在Chrome [Allow-Control-Allow-Origin:*](https:// chrome)中使用此擴展。 google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi) – JoxieMedina