Javascript Firebase函数-http获取参数,带acentuation
我有一个firebase函数来执行http GET。共有3个参数,所有参数均正常工作,但如果其中一个参数包含评估,Firebase控制台不会显示任何错误,但GET不会执行。在这种情况下,问题在于参数03Javascript Firebase函数-http获取参数,带acentuation,javascript,node.js,http,google-cloud-functions,Javascript,Node.js,Http,Google Cloud Functions,我有一个firebase函数来执行http GET。共有3个参数,所有参数均正常工作,但如果其中一个参数包含评估,Firebase控制台不会显示任何错误,但GET不会执行。在这种情况下,问题在于参数03 var url = 'http://myapi.azurewebsites.net/api/values?Parameter01=' + nameParam + '&Parameter02=' + emailParam + '&Parameter03=' + se
var url = 'http://myapi.azurewebsites.net/api/values?Parameter01=' + nameParam + '&Parameter02=' + emailParam + '&Parameter03=' + serviceParam ;
http.get(url, (resp) => {
res.setEncoding('utf8');
}).on("error", (err) => {
console.log("Error : " + err.message);
});
有什么帮助吗?无论何时构建URL,都应该正确转义所有查询字符串组件,以便它们包含。这就是为什么。因此,你应该这样做:
var url = 'http://myapi.azurewebsites.net/api/values' +
'?Parameter01=' + encodeURIComponent(nameParam) +
'&Parameter02=' + encodeURIComponent(emailParam) +
'&Parameter03=' + encodeURIComponent(serviceParam);
有其他更干净的方法可以使用查询字符串组件构建URL,但这应该可以很好地工作。谢谢Doug。工作。另一种方法是在const serviceParam=servicoParamComAcentos.normalize('NFD').replace(/[\u0300-\u036f]/g,”)中清理参数