2
我有一個MVC頁面的相對簡單的例子,它使用jQuery創建POST來獲取一些JSON數據,然後在完成時顯示成功/失敗消息。該代碼在其他瀏覽器中工作得很好,但在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);
}
似乎在IE 4失敗了,大約每5倍。我在控制器中放置了一些日誌代碼,並且每次都調用控制器操作,即使它失敗了。有沒有人看到我在這裏做錯了什麼?
當它碰到我的錯誤處理函數時,textStatus被設置爲「error」,errorThrown未定義。
嘗試使用'{}'(或'null')而不是'「{}」'作爲數據。不知道是否這是問題,但發送'「{}」'我不相信會轉化爲有效的鍵/值對。編輯:剛剛意識到你發送JSON的動作,但除非你有一個JSON活頁夾設置,這可能是問題 – 2010-08-09 22:05:15
這工作!如果您想將其作爲答案提交,我會將其標記爲已回答。 – Dismissile 2010-08-09 22:08:51