bug描述:django请求request接收数据时,如果参数中包含分号时,会导致分号后面的消息丢失。
比如前台js调用代码
$.post('/get_params', { "A":"abcd;efg", "B":"abcdefg" }, function(data){ // to do something });Django接收代码
@api_view(['GET'])def get_params(request): param_a = request.GET.get('A') param_b = request.GET.get('B')
param_a 的值为 abcd
param_b 的值为 abcdefg
尝试过对于A进行url编码,接收端解码,仍未成功
诊断原因:Django的bug,有兴趣的可以查看源码。
临时解决方案:采用base64对A进行编码,然后接收端解码。