1. 程式人生 > >Ionic2 Post請求後臺服務資料

Ionic2 Post請求後臺服務資料

1,新增Ionic providers            --命令    ionic g provider baseservice

-----baseservice.ts  新增程式碼

下面這部分摘抄別人的,但是忘記是哪個網站了。。。。。

   //Common post method  post請求引數序列化
    postSerialization(data, urlmethod) {
        let headers = new Headers({
            'Content-Type': 'application/x-www-form-urlencoded'
        });
        let options = new RequestOptions({
            headers: headers
        });
        return new Promise((resolve, reject) => {
            this.http.post('' + this.httpurl + '' + urlmethod + '', this.toQueryString(data), options)
                .map(res => res.json())
                .subscribe(data => resolve(data), err => reject(err))
        })
    }
    //post請求引數序列化
    postSerializationSubscribe(data, urlmethod) {
        let headers = new Headers({
            'Content-Type': 'application/x-www-form-urlencoded'
        });
        let options = new RequestOptions({
            headers: headers
        });
        return this.http.post('' + this.httpurl + '' + urlmethod + '', this.toQueryString(data), options)
            .map(res => res.json());
    }
    //引數序列化
    private toQueryString(obj) {
        let result = [];
        for (let key in obj) {
            key = encodeURIComponent(key);
            let values = obj[key];
            if (values && values.constructor == Array) {
                let queryValues = [];
                for (let i = 0, len = values.length, value; i < len; i++) {
                    value = values[i];
                    queryValues.push(this.toQueryPair(key, value));
                }
                result = result.concat(queryValues);
            } else {
                result.push(this.toQueryPair(key, values));
            }
        }
        return result.join('&');
    }
    //引數序列化
    private toQueryPair(key, value) {
        if (typeof value == 'undefined') {
            return key;
        }
        return key + '=' + encodeURIComponent(value === null ? '' : String(value));
    }

--------register.ts   頁面呼叫baseservice.ts  post 請求 和傳入webapi方法

  Register()
  {
    let self = this;
    let data = { "UserAd": this.userad, "PassWord": this.password};
    let urlmethod = '/UserInfo/Add';
            this.serviceinfo.postSerialization(data, urlmethod).then(rackallinfo=>{
                let rackinfoarr=[];
                for(let a in rackallinfo[0])
                {
                    rackinfoarr.push(rackallinfo[0][a]);
                }
             if(rackinfoarr.length==0)
             {let alert = this.alertCtrl.create({
                title: 'Note!',
                subTitle: ' Code not exists.',
                buttons: ['OK']
            });
            alert.present();
        }
        else
        {this.goToRackDetail();console.log('aaaa')}
        })
  }
  RegisterNew(){
    let self = this;
    let data = { "UserAd": this.userad, "PassWord": this.password};
    let urlmethod = '/UserInfo/Add';
        self.infoservice.postSerializationSubscribe(data, urlmethod).subscribe(data => {
            this.arrayObj = new Array();
            for (let i = 0; i < data.length; i++) {
                this.arrayObj.push(data[i])
                this.formCode = this.arrayObj[0].UserAd;
                this.formNo = this.arrayObj[0].password;
                console.log(this.formCode);
                console.log(this.formNo);
                //this.sanitizeHtml = this.sanitizer.bypassSecurityTrustHtml("<br>" +this.arrayObj[0]. +"<br><br><br>")    --html內容
            }

  }
  }


---後臺接收引數    aspx.cs

[AllowAnonymous]
        [HttpPost]
        public User Login(JObject jdata)
        {
            User user = new DAL.Model.User();
            string adaccount = jdata["UserAd"].ToString();
            string password = jdata["PassWord"].ToString();
            //var adaccount = jsadaccount.ToObject<();

             user = new DAL.BLL.UserRegister().Register(adaccount,password);
            //var user = _userList.FirstOrDefault(users => users.UserID == id);
            //if (user == null)
            //{
            //    throw new HttpResponseException(HttpStatusCode.NotFound);
            //}
            return user;
        }