django request bug

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

原文地址:https://www.cnblogs.com/dtstack/p/10271535.html