码迷,mamicode.com
首页 > Web开发 > 详细

js jQuery中Ajax请求参数转义问题

时间:2014-09-04 10:34:19      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:js   ajax请求参数   url编码转义   

前几天在工作的时候,在和移动端做接口的时候发现,前端在传递参数的时候其中有+或者&时候,服务器获得串中+或者&都变成了空格,后台Java程序在解析的时候出错了!

具体代码如下:

$(function () {
  var isPc = !(window.__detect.android||window.__detect.ios||window.__detect.phone),
    moonCakeNums,
    moonCakeIdentify= 0,
    <span style="color:#ff0000;">token = userCookieControl.getCookie('authtoken'),
    APP_ARGS  = token?'&authtoken='+encodeURIComponent(token)+'&from=m':'',</span>
    GUAGUA_SCHMA = 'guagua://guagua::5::13:1;18:2', //guagua://guagua::8::21:2
  //退出的登录地址
    logoutBackUrl = 'http://event.guagua.cn/event/zhongqiu/index.html';
  //防止用户重复提交
  function blockAjax(delay){
    var $elem = $('body'),
      isBlock = $elem.attr('data-block');
    if(isBlock) return true;
    $elem.attr('data-block', 'block');
    setTimeout(function(){
      $elem.removeAttr('data-block');
    }, delay||1200 );
  }
  //登录弹框
  function popupLoginDlg(){
    if(isPc){
      //末登录
      guaguaLR._run('l');
    } else {
      window.location.href = GUAGUA_SCHMA;
    }
  }
  function __checkLogin(){
    var isLogin = checkLoginStatus();
    if(!isLogin) popupLoginDlg();
    return !!isLogin;
  }
  //ios首页隐藏兑换按钮
  //if(window.__detect.ios) $('#J_exchange_btn').hide();
  //首页兑换按钮
  $('#J_exchange_btn').bind('click', function(e) {
    e.preventDefault();
    if(__checkLogin()) {
      window.location.href = './duihuan.html';
    }
}); 
其中从移动App的页面cookie获得用户的登录信息(authtoken)中的含有+和&符号,导致服务端获得authtoken时解析错误了,解决的方式就是对authtoken进行URL转义。代码如下:

APP_ARGS  = token?'&authtoken='+encodeURIComponent(token)+'&from=m':'',
这样服务器就能够获得正常的authtoken,并解析得到其中用户信息!




js jQuery中Ajax请求参数转义问题

标签:js   ajax请求参数   url编码转义   

原文地址:http://blog.csdn.net/figthinbeijing/article/details/39030967

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!