MVC 3을 사용 중이고 187 개의 이름 값 쌍 (예 : List<OrientationData>
)을 가진 JsonResult를 반환하는 액션이 있지만 종종 ajax 호출에서받은 데이터가 잘리고 구문 분석 할 수 없습니다.JsonResult가 잘린 경우
이것은 항상 JsonResult를 통해 동일한 187 개 항목을 반환하므로 길이 문제 일 경우 나는 그것이 항상 실패 할 것이라고 생각합니다.
[HttpPost]
public JsonResult GetAllMetrics()
{
var metrics = metric.GetAllMetrics();
return Json(metrics);
}
이 JQuery와 아약스 호출입니다 :
$.ajax({
url: urlGetAllMetrics,
type: 'POST',
data: jsonData,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (ajaxData) {
if (ajaxData && ajaxData.length > 0) {
//populate data here
}
},
error: function (msg) {
alert(msg);
}
});
결과는 아약스 호출에 반환 때때로 차단 및 표시되어 실제로 2 개 개의 다른 장소에서 차단하는 다음 작업입니다. 이것에 대한 가능한 이유는 무엇입니까?
나는 Fiddler를 사용하여 트래픽을 캡처 할 때 반환 된 데이터를 자르지 않고도 항상 작동한다는 점에 유의하고 싶습니다. 이유는 아직 없습니다. Fiddler를 사용하지 않으면 json에 문자열을 구문 분석 할 수 없기 때문에 종종 아약스에서 오류가 발생합니다. 데이터는 Value 및 Text 문자열 속성이있는 배열입니다. 텍스트는 반환 차단되고 :
...,{"Value":"h12","Text":"h12 name goes here"},{"Val
제안 해 주셔서 감사합니다. 그러나 저에게는 도움이되지 않았습니다. 텍스트는 여전히 끊어지고 있습니다. 그것이 시간의 일부를 작동하기 때문에, 나는 길이 문제가 아니라고 생각했다. 나는 이상한 일들이 일어났다 고 확신한다. – DougJones
그것은? 그렇다면 내부적으로 사용되는 'JavaScriptSerializer'에 설정된 한계 일 것입니다. 이 답변에서 코드를 구현해보십시오. http://stackoverflow.com/a/7207539/1039608 – mattytommo