HTTP POST VALUERROR:未终止字符串,用于Javascript中的base 64编码字符串
我正在尝试将以下字符串作为内容发布到python服务器:HTTP POST VALUERROR:未终止字符串,用于Javascript中的base 64编码字符串,javascript,python,http-post,Javascript,Python,Http Post,我正在尝试将以下字符串作为内容发布到python服务器: id&p=7&x=11814&y=25712&yr=0&m=7&d=26&h=13&s=75 但是,我在服务器端得到了未终止的字符串错误。然后,我使用methodd windows.btoa()对消息进行编码,并尝试再次发送,但仍然收到保存错误。编码信息: aWQmcD03Jng9MTE4MTQmeT0yNTcxMiZ5cj0wJm09NyZkPTI2Jmg9MTMmcz0
id&p=7&x=11814&y=25712&yr=0&m=7&d=26&h=13&s=75
但是,我在服务器端得到了未终止的字符串错误。然后,我使用methodd windows.btoa()对消息进行编码,并尝试再次发送,但仍然收到保存错误。编码信息:
aWQmcD03Jng9MTE4MTQmeT0yNTcxMiZ5cj0wJm09NyZkPTI2Jmg9MTMmcz03NQ==
我的服务器端代码(python):
如果我在这里做错了什么,或者有更好的方法,请帮助我。。。提前谢谢 显示进行发布的Javascript代码。我想你忘了调用
encodeURIComponent
。这是必要的,因为=
在URI参数中是特殊的。谢谢,我对这一点很陌生。应该使用encodeURIComponent而不是base64编码。
def do_POST(self):
"""Respond to a POST request."""
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
if ctype == 'multipart/form-data':
postvars = cgi.parse_multipart(self.rfile, pdict)
elif ctype == 'application/x-www-form-urlencoded':
length = int(self.headers.getheader('content-length'))
postvars = cgi.parse_qs(self.rfile.read(length), keep_blank_values=1)
else:
postvars = {}
print '!!!postvars: ', postvars.keys()[0]