Я отправляю данные json в виде строки на сервер в asp.net mvc, как показано ниже:
var dto = JSON.stringify(transObj);
console.log(String(dto));
$.ajax({
url: "/home/activity",
dataType: 'html',
data: "obj=" + String(dto) + "&trackedFromEntityTypeId=" + trackedFromEntityTypeId + "&trackedFromEntityType=" + trackedFromEntityType,
type: 'POST',
success: function (data) {
var jsonResult = JSON.parse(data);
if (jsonResult.status) {
bootbox.alert(jsonResult.message, function () {
window.location.href = "/";
});
} else {
displayError('Something bad happend. ' + data.message);
}
},
error: function (error) {
displayError('Something bad happend. ' + error.statusText);
},
complete: function () {
$.unblockUI();
}
});
Как вы можете видеть, прежде чем он переходит на сервер, я пишу строку на консоль. Когда я открываю окно консоли, данные, показанные в формате json, как ожидалось, но на сервере строка усекается, как показано на следующем рисунке; Однако данные orignal json в окне консоли показаны ниже (как отключено). Я также использовал jsonformatter для форматирования данных как json и корректного формирования данных;
{ "ActivityInformation" : { "Attributes" : [ { "AttributeId" : "18",
"AttributeMappingId" : "17",
"AttributeName" : "Number of Helpers",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "19",
"AttributeMappingId" : "12",
"AttributeName" : "Thickness",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "14",
"AttributeMappingId" : "16",
"AttributeName" : "Width of Trench",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "8",
"AttributeMappingId" : "13",
"AttributeName" : "Extra No",
"AttributeValues" : [ { } ]
},
{ "AttributeId" : "10",
"AttributeMappingId" : "15",
"AttributeName" : "Dozer PL.Num",
"AttributeValues" : [ ]
},
{ "AttributeId" : "7",
"AttributeMappingId" : "14",
"AttributeName" : "Shovel Plate No (Company)",
"AttributeValues" : [ { "Value" : "51741" } ]
}
],
"Id" : "25",
"Name" : "Formation Preperation",
"Tools" : [ { "ToolGroupName" : "Grader - MG 118 - 2003 - CAT 14H",
"Tools" : [ { "ToolAttributes" : [ { "AttributeId" : "19",
"AttributeMappingId" : "21",
"AttributeName" : "Thickness",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "17",
"AttributeMappingId" : "22",
"AttributeName" : "Number of Masons",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "7",
"AttributeMappingId" : "23",
"AttributeName" : "Shovel Plate No (Company)",
"AttributeValues" : [ { "Value" : "51741" } ]
}
] } ]
},
{ "ToolGroupName" : "Grader - MG 119 - 2007 - CAT 14H",
"Tools" : [ { "ToolAttributes" : [ ] } ]
},
{ "ToolGroupName" : "Backhoe Loader - BL 108 - 2007 - CAT 422E",
"Tools" : [ { "ToolAttributes" : [ { "AttributeId" : "18",
"AttributeMappingId" : "19",
"AttributeName" : "Number of Helpers",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "13",
"AttributeMappingId" : "20",
"AttributeName" : "Width of Work",
"AttributeValues" : [ { "Value" : "" } ]
}
] } ]
},
{ "ToolGroupName" : "Backhoe Loader - BL 109 - 2007 - CAT 422E",
"Tools" : [ { "ToolAttributes" : [ ] } ]
},
{ "ToolGroupName" : "Backhoe Loader - BL 110 - 2007 - CAT 422E",
"Tools" : [ { "ToolAttributes" : [ ] } ]
},
{ "ToolGroupName" : "Backhoe Loader - BL112 - 2006 - CAT0416",
"Tools" : [ { "ToolAttributes" : [ ] } ]
}
]
},
"ActivityListInformation" : { "Id" : "14",
"Name" : "Road Activities"
},
"MilestoneInformation" : { "Id" : "8",
"Name" : "Milestone 3"
},
"PlaceInformation" : { "AreaId" : 4,
"AreaName" : "Area 1",
"RoadId" : 6,
"RoadName" : "108D",
"ZoneId" : 5,
"ZoneName" : "Zone 1"
},
"ProjectInformation" : { "Id" : "3",
"Name" : "LEVELLING AND ROADS IN AL BARSHA SOUTH – COMMUNITY 671 & 672"
},
"SubActivityInformation" : [ { "Attributes" : [ { "AttributeId" : "12",
"AttributeMappingId" : "6",
"AttributeName" : "End Chainage",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "18",
"AttributeMappingId" : "7",
"AttributeName" : "Number of Helpers",
"AttributeValues" : [ { "Value" : "" } ]
}
],
"Id" : "1",
"Name" : "Test Sub Activity",
"Tools" : [ { "ToolGroupName" : "Grader - MG 118 - 2003 - CAT 14H",
"Tools" : [ { "ToolAttributes" : [ { "AttributeId" : "19",
"AttributeMappingId" : "21",
"AttributeName" : "Thickness",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "17",
"AttributeMappingId" : "22",
"AttributeName" : "Number of Masons",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "7",
"AttributeMappingId" : "23",
"AttributeName" : "Shovel Plate No (Company)",
"AttributeValues" : [ { "Value" : "51741" } ]
}
] } ]
},
{ "ToolGroupName" : "Backhoe Loader - BL 108 - 2007 - CAT 422E",
"Tools" : [ { "ToolAttributes" : [ { "AttributeId" : "18",
"AttributeMappingId" : "19",
"AttributeName" : "Number of Helpers",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "13",
"AttributeMappingId" : "20",
"AttributeName" : "Width of Work",
"AttributeValues" : [ { "Value" : "" } ]
}
] } ]
}
]
},
{ "Attributes" : [ ],
"Id" : "2",
"Name" : "sdfdsfsdfsdf",
"Tools" : [ { "ToolGroupName" : "Backhoe Loader - BL 108 - 2007 - CAT 422E",
"Tools" : [ { "ToolAttributes" : [ { "AttributeId" : "18",
"AttributeMappingId" : "19",
"AttributeName" : "Number of Helpers",
"AttributeValues" : [ { "Value" : "" } ]
},
{ "AttributeId" : "13",
"AttributeMappingId" : "20",
"AttributeName" : "Width of Work",
"AttributeValues" : [ { "Value" : "" } ]
}
] } ]
},
{ "ToolGroupName" : "Backhoe Loader - BL 109 - 2007 - CAT 422E",
"Tools" : [ { "ToolAttributes" : [ ] } ]
}
]
}
]
}
Просто вычислил это с помощью комментария @Alexei Levenkov
. Проблема заключалась в том, что я вручную собирал данные и отправлял данные на сервер с использованием формата строки запроса. Howerver, метод, который я выбираю, - POST. Поэтому я просто подготовлю объект javascript, а затем отправлю его как объект на сервер;
var dto = { "obj": JSON.stringify(transObj), "trackedFromEntityTypeId": trackedFromEntityTypeId, "trackedFromEntityType": trackedFromEntityType };
$.ajax({
url: "/home/activity",
dataType: 'html',
data: dto,
type: 'POST',
success: function (data) {
var jsonResult = JSON.parse(data);
if (jsonResult.status) {
bootbox.alert(jsonResult.message, function () {
window.location.href = "/";
});
} else {
displayError('Something bad happend. ' + data.message);
}
},
error: function (error) {
displayError('Something bad happend. ' + error.statusText);
},
complete: function () {
$.unblockUI();
}
});