這是我的ajax代碼提交一個formdata與文件。 如果我刪除我永遠的自定義字符串「有」文件,該文件將作品並返回「1234567」。我是期待返回了「有文件1234567」,但總是拋出[對象]對象MVC ajax返回字符串作爲[對象]對象
$(document).ready(function() {
$('#scan').change(function (e) {
debugger
var element = this;
var formData = new FormData();
var totalFiles = document.getElementById("scan").files.length;
var file = document.getElementById("scan").files[0];
formData.append("scan", file);
$.ajax({
url: '@Url.Action("scancode", "Products")',
type: "POST",
dataType: "json",
data: formData,
processData: false,
contentType: false,
success: function (data) {
$('#barcode').val(data);
},
error: function (err) {
document.getElementById('emsg').innerHTML = err;
}
});
});
});
控制器
public string scancode(HttpPostedFileBase scan) {
var str = "";
if (scan !=null)
{
str = "has file";
}
try
{
IBarcodeReader reader = new BarcodeReader();
// load a bitmap
var barcodeBitmap = (Bitmap)Bitmap.FromStream(scan.InputStream);
// detect and decode the barcode inside the bitmap
var result = reader.Decode(barcodeBitmap);
// do something with the result
if (result != null)
{
str =str+ result.Text;
}
}
catch (Exception ex)
{
str = ex.Message;
}
return str;
}
檢查您是否爲您的ajax調用獲取200 OK響應 – Shyju
您實際上無法從ajax調用返回字符串。而是返回一個JSON對象。將返回類型更改爲JsonResult:'public JsonResult scancode(HttpPostedFileBase scan)'而不是'return str;'返回Json:'返回Json(new {someString = str});'並在您的ajax調用中:'success:函數(data){$('#barcode').val(data.someString); }' – Kapobajza
是'dataType:「json」,'在這種情況下是正確的?我不認爲文件可以通過Ajax張貼....有人可以糾正我。 – Searching