jQuery를 사용하여 JSON 데이터를 가져온 다음 간단히 성공/실패 메시지를 표시하는 POST를 만드는 MVC 페이지의 비교적 간단한 예가 있습니다. 코드는 다른 브라우저에서는 완벽하게 작동하지만 IE7/8에서는 4/5 회 실패합니다. 여기
는 MVC보기 페이지입니다 :<asp:Content runat="server" ContentPlaceHolderID="MainContent">
<p id="message"></p>
</asp:Content>
<asp:Content runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery-1.4.1.min.js") %>"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type:"POST",
url: "<%= Url.Action("GetData") %>",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
$("#message").html("success");
},
error: function(XMLHttpRequest, textStatus, errorThrown){
$("#message").html("error: " + textStatus + "<br/>exception:" + errorThrown);
}
});
});
</script>
</asp:Content>
컨트롤러뿐만 아니라 매우 간단하다 :
[HttpPost]
public ActionResult GetData()
{
IList<string> people = new List<string>
{
"A",
"B",
"C",
"D",
"E"
};
return Json(people);
}
은 대략 매 5 번에서 IE 4에 실패 할 것으로 보인다. 컨트롤러에 일부 로깅 코드를 삽입하고 실패 할 때마다 컨트롤러 동작을 호출합니다. 아무도 내가 여기서 잘못하고있는 것을 보지 못합니까?
내 오류 처리기 함수에 도달하면 textStatus는 "error"로 설정되고 errorThrown은 정의되지 않습니다.
데이터로''{} ''대신'{}'(또는'null')을 사용하십시오. 이것이 문제인지는 모르겠지만''{} ''을 보내면 유효한 키/값 쌍으로 변환 할 것이라고 생각하지 않습니다. 편집 : JSON 바인더를 설정하지 않았다면 액션에 보내는 JSON을 알게되었지만이 문제는 –
일 수 있습니다. 답변을 제출하려면 답변으로 표시하겠습니다. – Dismissile