今天对项目进行版本升级时,出现了$.getJSON向后端传送数据时报错net::ERR_CONNECTION_RESET。之前的后端是用python2实现的,用着没什么问题,升级到python3时突然就不能用了。不知是不是由于python3的关系。无法从后端解决,只能从前端突破。
定位到前端代码:
function regressAnalyserRetrieveData(sSource,aoData,fnCallback){
console.log(JSON.stringify(anaStasDict));
console.log(JSON.stringify(aoData));
$.getJSON(
'/mics/apps/formplugin/statistics/relevantanalyser/analyser/statistics/regress/meta/data',
{
"anaStasDict":JSON.stringify(anaStasDict),
"aoData":JSON.stringify(aoData)
//"aoData":aoData
},
function(data){
//console.log(data);
fnCallback(data);
})
}
打印数据为:
{"pDisease":["鼻唇沟皮肤恶性肿瘤"],"pAssayX":["血红蛋白浓度"],"pAssayY":["红细胞压积"],"pSex":"all","pNum":"all"}
[{"name":"draw","value":1},{"name":"columns","value":[{"data":"AKC190","name":"","searchable":true,"orderable":true,"search":{"value":"","regex":false}},{"data":"BKC232","name":"","searchable":true,"orderable":true,"search":{"value":"","regex":false}},{"data":"BKC927","name":"","searchable":true,"orderable":true,"search":{"value":"","regex":false}},{"data":"BKC928","name":"","searchable":true,"orderable":true,"search":{"value":"","regex":false}},{"data":"sex","name":"","searchable":true,"orderable":true,"search":{"value":"","regex":false}}]},{"name":"order","value":[{"column":0,"dir":"asc"}]},{"name":"start","value":0},{"name":"length","value":20},{"name":"search","value":{"value":"","regex":false}}]
调试发现是因为JSON.stringify(aoData)数据太多导致的问题。转用$.ajax
$.ajax({
url: '/mics/apps/formplugin/statistics/relevantanalyser/analyser/statistics/regress/meta/data',
datatype: "json",
type:'post',
data:{ "anaStasDict":JSON.stringify(anaStasDict),"aoData":JSON.stringify(aoData)},
success: function (e) { //成功后回调
// console.log(e);
fnCallback(JSON.parse(e)); },
error: function(e){ //失败后回调
alert(e);
},
beforeSend: function(){
console.log("正在加载");
}
})
然后就可以了。