2012-05-17 32 views
1

我寫了一個MVC3應用程序,其中我使用了Valums fileuploader。當用戶上傳文件時,服務器將返回一個指示成功/失敗的JSON對象,並可能返回錯誤消息。有些用戶報告說他們的瀏覽器要求他們採取行動,就像下載文件(保存/打開)一樣,而不是將JSON傳遞給javascript。瀏覽器下載JSON結果而不是傳回腳本

我使用的是上傳的分配,我的C#控制器返回一個JSONResult這樣

return JSON(new { success = true }, "application/json"); 

或者,如果出現錯誤

return JSON(new { success = false, error = exception.Message }); 

我已經無法重現此,並收到了IE9和Chrome用戶的報告。有沒有人有過這樣的事情,你做了什麼來解決它?或者我應該從哪裏開始排除故障

編輯: 文件上傳將在onComplete事件運行此:

function(id, filename, responseJson) { 
    if(responseJson.success != true) { 
    alert("An error occurred: " + responseJson.error); 
    return false; 
    } 
    return true; 
} 
+0

你可以顯示你的JavaScript json解析代碼 – FosterZ

回答

0

原來,問題是,IE瀏覽器不處理application/json內容類型。將它設置爲text/html可以使它工作,雖然它很糟糕。

1

試試這個:

return Json(new { success = true }, JsonRequestBehavior.AllowGet); 
+0

這並不能解決問題。實際上,請求不是使用GET完成的,而是POST。如果AllowGet丟失了,那麼控制器會拋出一個錯誤。在這種情況下,一些瀏覽器將返回的JSON視爲文件進行下載,這不是我想要的。 – carlpett

相關問題