Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase函数-http获取参数,带acentuation_Javascript_Node.js_Http_Google Cloud Functions - Fatal编程技术网

Javascript Firebase函数-http获取参数,带acentuation

Javascript 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

我有一个firebase函数来执行http GET。共有3个参数,所有参数均正常工作,但如果其中一个参数包含评估,Firebase控制台不会显示任何错误,但GET不会执行。在这种情况下,问题在于参数03

        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,”)中清理参数