我的礼物"将对象腌制成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编码的内容中取回一个常规值。
我需要以不同的方式完成什么?
答案 0 :(得分:-1)
您可以使用EncodeUriComponent()Javascript函数对特殊字符进行编码,请尝试:
var encodedString = encodeURIComponent(/* your string here */);