$http通信

       在做活动通的同步功能时,需要手机端向服务器端提交数据,这时需要用到$http,使用post请求方式。

在网上了解到http通信中有POST和GET的请求方式。GET可以获得静态页面,也可以把参数放在URL字符串后面,传递给服务器。POST方法的参数放在Http请求中。

       对于两者的比较,我了解到,POST请求向服务器传送数据,数据放在HTML HEADER内一起传送到服务端URL地址,数据对用户不可见,传送的数据量比较大,一般不受限制,安全性高。而GET把参数提交到URL中,值和表单的内的各个字段一一对应,且传送的数据量较小,不到2kb,安全性低。

 

下面来说一下代码:

客户端的代码:

 

$http.post('http://192.168.1.116/synchronization.json',{"username":name})

 

http://192.168.1.116    //服务器的地址
synchronization      //服务器接受到请求后调用的方法
{"username":name}     //传入的数据
 

活动通的代码:

 

def synchronization
    ......  //params[:username]为接收到的值  
end
 

 

看一个活动通的登录的例子:

party_bid手机应用的代码:

      

$scope.login_party_bid = function () {
   var name = $scope.name;
   var password = $scope.password;
   $http.post('http://192.168.1.116/login_activity.json', {"userName": name, "userPassword": password}).success(function (back) {
      if (back.data == 'true') {
         $location.path('/activity_list');
         localStorage.setItem('username',name);
      }
      else {
         $scope.flash = "alert alert-danger";
         $scope.error = "帐号或密码不正确,请重新输入";
         $location.path('/');
      }
   });
}
 

活动通服务器的代码: 

 

def login_activity
  user = User.find_by_name(params[:userName])
  respond_to do |format|   //向客户端返回值
    if user && user.authenticate(params[:userPassword])
      format.json { render json: {data: 'true'} }   #返回true
    else
      format.json { render json: {data: 'false'} }   #返回false
    end
  end
end
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值