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进行编码,然后接收端解码。