jquery - 通过 ajax 发送 FormData 对象和附加参数

标签 jquery json ajax form-data

我已经成功发送了一个 FormData 对象,如下所示:

var formData = new FormData();
formData.append('file', this.files[0]);
$.ajax({
   url: urlUploadProductsFile,
   type: 'POST',
   data: formData,
   cache: false,
   contentType: false,
   processData: false
}, 'json');

现在我想做的是添加一个额外的 CustomerId 以发送到服务器。以下内容将不起作用:

var formData = new FormData();
formData.append('file', this.files[0]);
$.ajax({
   url: urlUploadProductsFile,
   type: 'POST',
   data: { "file": formData, "CustomerId": 2 },
   cache: false,
   contentType: false,
   processData: false
}, 'json');

我还尝试了以下变体:

data: { "file": formData, "CustomerId": 2 }, processData: true

数据:JSON.stringify({ "file": formData, "CustomerId": 2 })

data: { "file": JSON.stringify(formData), "CustomerId": 2 }

数据:{ 文件:formData,CustomerId:2 }

感谢任何帮助。

最佳答案

尝试:

var formData = new FormData();
formData.append('file', this.files[0]);
formData.append('CustomerId', 2);

/*
 note:: appending in form Data will give "csrf token mismatch error". 
 so better you make a input feild of type hidden with name = CustomerId 
 and value =  2 
*/ 

$.ajax({
   url: urlUploadProductsFile,
   type: 'POST',
   data: formData,
   cache: false,
   contentType: false,
   processData: false
}, 'json');

关于jquery - 通过 ajax 发送 FormData 对象和附加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448724/

相关文章:

php - 带有 JSON、PHP 的 iOS

javascript - 信息窗口中的 AJAX 调用 : Scope Issue

jquery - 跨源请求被阻止 : The Same Origin Policy disallows reading the remote resource MVC 5

javascript - 打开时尝试将数据从数据库传递到引导模式。我该怎么做呢?

javascript - 如何检查浏览器是否支持公钥凭据?

JavaScript:仅在特定元素内捕获右键单击和禁用菜单

javascript - 如何解决这个 javascript switch 语句问题,switch 语句不起作用

javascript - 什么是 $ ("#myDiv").html(myResult); 更好的替代品在这种情况下?

c# - 如何在 C# mvc 中将 Json 结果转换为对象

java - JSON 对象返回 Null