Closed weitangtang closed 8 years ago
不要使用 url encode 试试.
router部分代码如下,参数如果是中文,就返回value:[]。。。如果是数字,字符,字母都 都可以返回正确结果,很费解,帮忙瞅瞅 \ .get(function (req, res, next) { console.log('projectinfo.req.query',req.query); var querystr = '?$filter='; var array = []; for( var key in req.query){ array.push( key +' eq '+ "'"+req.query[key]+"'"); } if(array.length==1) { querystr+=array[0]; }else if(array.length>1) { querystr+=array[0]; for (i = 1; i < array.length ; i++) { querystr += ' and ' + array[i ]; } } var geturl = req.projectinfo.url+ querystr; console.log('projectinfo.getUrl', geturl);
request.get(geturl, function (err, hres, body) {
console.log('',body);
res.send(body);
})
})**
中文可能确实有这个问题, 我需要测试一下.
测试了一下, 在你的代码中你没有进行 url encode, 像这样.
修改前:
request.get(geturl, function (err, hres, body) {
console.log('',body);
res.send(body);
})
修改后:
request.get(encodeURI(geturl), function (err, hres, body) {
console.log('',body);
res.send(body);
})
英文参数 一切正常 1.程序中 :http://localhost:8613/projectinfo?$filter=dep%20eq%20%27abc%27 2.chrome地址栏:http://localhost:8613/projectinfo?$filter=dep%20eq%20%27abc%27
中文参数: chrome中正常,程序中返回 value:[]
http://localhost:8613/projectinfo?$filter=dep%20eq%20%27媒体9%27 是啥原因?