0
我想轉換離子2應用程序中的離子應用程序,即時通訊嘗試重新登錄進度。 我在離子2應用程序寫了這個:Ionic 2 http.post登錄
loginUser(){
localStorage.setItem('username', this.username);
localStorage.setItem('password', this.password);
localStorage.setItem('company', this.company);
this.loginData = {};
this.loginData.UserID = this.username;
this.loginData.CompanyID = this.company;
this.loginData.Password = this.password;
let body = {"jsonLogin": JSON.stringify(this.loginData)}
let link = 'working link';
let headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
});
let options = new RequestOptions({headers: headers});
this.http
.post(link, body, options)
.map(res => res.json())
.subscribe(
data => {
console.log(data);
//this.navCtrl.push(MenuPage);
}, err => {
console.log(err);
});
}
雖然在離子1個應用,這是代碼:
$scope.loginUser = function() {
json = {};
json.UserID = $scope.data.username;
json.CompanyID = $scope.data.company;
json.Password = $scope.data.password;
$http({
method: 'POST',
data: {
"jsonLogin": JSON.stringify(json)
},
url: 'working link',
transformRequest: function (obj) {
var str = [];
for (var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
}
我的問題是在開機自檢的時候我張貼我的代碼離子2應用這是我的表單數據的樣子:
{
"jsonLogin": "{\"UserID\":\"admin\",\"CompanyID\":\"test\",\"Password\":\"pass\"}"
}:
雖然離子1個應用表單數據是這樣的:
jsonLogin:{"UserID":"admin","CompanyID":"test","Password":"pass"}
POST正在工作,因爲我從服務器收到錯誤消息,我只是不知道如何格式化數據以執行正確的POST。
非常感謝您的幫助。
編輯: 得到它通過添加一個新的頭工作:
let headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': '*/*'
});
,併發送一個硬編碼字符串:
createStringForLogin(username: any, company: any, password: any){
return 'jsonLogin={"UserID":"'+username+'","CompanyID":"'+company+'","Password":"'+password+'"}';
}
沒有工作...有輸出http://imgur.com/5QHHYUl –
我認爲它的工作原理是正確的? Json根據您的要求進行格式化。現在,你如何發送給服務器取決於你。如果不是現在有什麼問題?此外,我沒有在這裏糾正任何職位行爲。如果發佈請求和參數有問題,那麼你需要糾正它。 –
我的問題是得到POST的方式,它必須是...我不是離子1應用程序的所有者,我剛剛得到的工作,將其轉換爲離子2,所以我不知道什麼服務器期望登錄,我只是知道,如果郵政像離子1應用程序一樣,它會工作... 而你可以在上面的問題中看到,我只是想輸出是在這樣一行:「jsonLogin: {「UserID」:「admin」,「CompanyID」:「test」,「Password」:「pass」}「 –