如何编码和解码查询值

时间:2015-07-16 18:03:08

标签: jquery ajax json node.js express

我的礼物"将对象腌制成JSON字符串" Express.js功能是:

router.post('/restore', json_parser, function(request, response, next)
  {
  console.log('router.post /load');
  console.log('Body: ' + request.body);
  console.log('Query: ' + request.query);
  console.log('href: ' + sanitize(request.user.href));
  console.log('identifier: ' + sanitize(request.query.identifier));
  var result = look_up_identifier(request.user.href, request.query.identifier);
  console.log(result);
  response.type('application/json');
  response.send(result);
  });

客户端的Ajax save()函数(目前尚未到达)是:

var save = function(identifier, data)
  {
  if (Modernizr.localstorage)
    {
    localStorage[identifier] = JSON.stringify(data);
    }
  jQuery.ajax('/save',
    {
    'data':
      {
      'data': JSON.stringify(data),
      'identifier': identifier,
      'userid': userid
      },
    'method': 'POST'
    });
  }

服务器给出了500页,我的客户端restore()函数可以根据请求响应给出非JSON输入(在这种情况下,jqxhr.responseText以'&lt开头;'如果服务器给出500响应)。服务器调试console.log()s给出[object Object]:

router.post /load
Body: [object Object]
Query: [object Object]
href: httpsapi.stormpath.comv1accounts[identifier deleted]
POST /restore 500 7.343 ms - 1202
router.post /load
Body: [object Object]
Query: [object Object]
href: httpsapi.stormpath.comv1accounts[identifier deleted]
POST /restore 500 3.410 ms - 1202
router.post /load
Body: [object Object]
Query: [object Object]
href: httpsapi.stormpath.comv1accounts[identifier deleted]

localStorage目录为空。

我希望能够通过Ajax发送值,无论是通过POST主体中的QUERY_STRING,还是作为JSON,并在服务器端挑选出我在客户端编码的任何内容。有些事情失败了,我还没有得到一个字典,我从客户端探测其中一个密钥,并从我通过QUERY_STRING或JSON编码的内容中取回一个常规值。

我需要以不同的方式完成什么?

1 个答案:

答案 0 :(得分:-1)

您可以使用EncodeUriComponent()Javascript函数对特殊字符进行编码,请尝试:

var encodedString =  encodeURIComponent(/* your string here */);