0
My Steps: step1。上傳一個文件到服務器 step2。服務器獲取文件並將其保存到存儲 step3。服務器將結果(成功或失敗)返回給客戶端上傳文件在jquery ajax到asp.net,但結果json失敗
Step3中的程序錯誤, textStatus = parsererror; readyState的:4
在客戶端:
var data = new FormData();
data.append("file", document.getElementById('file').files[0]);
data.append("id",$('#saveClassID').val());
$.ajax(
{
url: uploadFile,
data: data, //
type: 'post',
async: false,
contentType: false,
dataType: 'json',
processData: false,
success: function (data) {
if (data.status == "OK") {
alert('success');
}
else {
alert(fail);
}
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(textStatus, errorThrown);
}
});
在服務器端:
[HttpPost]
public ActionResult uploadFile()
{
HttpPostedFileBase file = (HttpPostedFileBase)Request.Files["file"];
int save_id = Convert.ToInt32(Request.Form["id"].ToString());
Result result = new Result();
if (file != null)
{
if (file.ContentLength > 0)
{
//savedata, and get result public Result saveData(file,id)
result = saveData(file,id);
}
else
{
result.msg="error";
result.staut="fail";
}
else
{
result.msg="no file";
result.status="fail";
}
return Json(result, JsonRequestBehavior.AllowGet);
}
public class Result
{
public string status;
public string msg;
}
我不知道如何修改我的代碼, 1.如果我修改代碼在客戶端,「contentType:false」到json, 服務器端將無法獲得「ID」, 2.if我修改了服務器端的代碼進行測試, 「return Json(return Json(new {狀態= 「OK」},JsonRequestBehavior.AllowGet);」 ,代碼依然未能
謝謝
您需要首先製作您的Result屬性,而不是字段({'get; set;}' –
除非您在某處定義了某個變量,否則其''alert ');'(引號) –
將您的成員變量作爲屬性 示例:'public string Status {get; set;}' –