Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.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 “JSON不传输”+&引用;字符到CGI脚本_Javascript_Python_Json_Escaping_Cgi - Fatal编程技术网

Javascript “JSON不传输”+&引用;字符到CGI脚本

Javascript “JSON不传输”+&引用;字符到CGI脚本,javascript,python,json,escaping,cgi,Javascript,Python,Json,Escaping,Cgi,我目前正在做一个个人项目,我必须处理一些化学公式 我有一个带有JavaScript的表单,在其中输入这些公式;对于super-en下标,这些公式以类似乳胶的样式输入 下面可以找到一个示例公式: Fe^{3+} 当我使用JavaScript读取表单和console.log()时公式按预期工作。 但是,如果我将公式发送到后端(带有CGI的Python),则+字符似乎已消失,并被空格替换 我认为这与转义字符有关,因为公式的某些部分看起来很像正则表达式,但环顾四周后,我找不到任何东西表明我必须转义+字符

我目前正在做一个个人项目,我必须处理一些化学公式

我有一个带有JavaScript的表单,在其中输入这些公式;对于super-en下标,这些公式以类似乳胶的样式输入

下面可以找到一个示例公式:

Fe^{3+}

当我使用JavaScript读取表单和
console.log()时公式按预期工作。
但是,如果我将公式发送到后端(带有CGI的Python),则
+
字符似乎已消失,并被空格替换

我认为这与转义字符有关,因为公式的某些部分看起来很像正则表达式,但环顾四周后,我找不到任何东西表明我必须转义
+
字符


现在我完全不知道如何解决这个问题。。。我可以使用不同的字符并在后端替换它,但这似乎不是最佳解决方案…

最重要的问题:您是如何调用CGI脚本的?

使用HTTP GET还是HTTP POST

如果您使用的是HTTPPOST,并且数据是在HTTP数据部分传输的,则不需要转义“+”符号

但是如果您使用的是HTTPGET,那么“+”符号将首先根据URL编码标准进行翻译(因此,“+”将变成一个空格),然后再传输到CGI脚本


因此,在后一种情况下,您需要转义“+”符号(以及其他“特殊”字符,如“%”和“?”)。

我还没有想到这一点。。。但是是的,我正在使用HTTP get,您的建议解决了这个问题!我正在使用javascript
encodeURIComponent()
函数。