带有文件上传功能的 AngularJs Ajax POST 表单
AngularJs Ajax POST form with file upload
我正在尝试设置一个表单,以使用ajax请求提交给已经使用Ajax构建的api。出于某种原因,该文件只是不想传输到系统,尽管已经构建了一个后端来处理这个问题,并且它工作正常。
根据我在这里找到的教程,我的服务如下所示:http://badwing.com/multipart-form-data-ajax-uploads-with-angularjs/
addActivity: function(url){
return $http({
method: 'POST',
url: REQUEST_URL + 'Volunteering/AddActivity?token=' + token + url,
headers: {
'Content-Type': 'multipart/form-data'
},
data: {
file: $scope.file
},
transformRequest: formDataObject
}).
then(function(result) {
console.log(result);
return result.data;
});
},
我有一种感觉,这只是我错过的一些非常小的东西,任何人都可以提供帮助吗?
我遇到了类似的问题。
解决方案是使用表单数据
var formData = new FormData();
formData.append("file", $scope.file);
并替换
data: {
file: $scope.file
}
跟
data: {
formdata
}
我在使用 angular + laravel 实现文件上传时遇到问题。每次我尝试发送多部分表单时,服务器都不会收到表单数据,即使它显然正在发送,或者我是这么认为的。我终于找到了这篇文章,解决了我所有的问题。
长话短说,这是$http电话:
var data = new FormData();
data.append("file", file);
$http.post("//myDomain.com/api/demo", data, {
headers: { 'Content-Type': undefined },
transformRequest: angular.identity
}).success(function (data, status, headers, config) {
}).error(function (data, status, headers, config) {
});
rolin.tencent.shenzhen的另一个答案也提到Content-Type
设置为undefined
,让浏览器整理出来。
数据应data: $scope.file
重要的事情:您应该设置'Content-Type': undefined
以使浏览器设置正确的内容类型。
您可以使用
此插件,它也是高度可配置的: https://github.com/danialfarid/ng-file-upload
相关文章:
- AngularJS JQuery Ajax表单提交等效
- 在点击AngularJS时发出新的AJAX请求
- 从输入中获取字符串,并在AngularJS中发出AJAX请求
- Ruby On Rails应用程序与angularJS关于AJAX
- 如何使AngularJS控制器依赖于通过ajax加载在rootScope上的值
- AngularJS Ajax Call
- 从ASP MVC异步加载Angularjs(AJAX)并执行它们
- 使用 AngularJS/AJAX/JavaScript 调用 PHP
- 带有文件上传功能的 AngularJs Ajax POST 表单
- jQuery ajax 请求有效,相同的 AngularJS ajax 请求无效
- AngularJS $.ajax issue
- 当我执行循环时,AngularJs/Ajax索引正在改变
- AngularJS: ajax调用后模板中的作用域没有更新
- 我可以改进这个AngularJS / AJAX javascript片段
- 如何运行angularjs ajax请求在循环,但有延迟
- AngularJS ajax http promise返回额外的数据
- angularJS AJAX请求默认超时
- jQuery或AngularJS Ajax“POST”请求使用下面的代码向服务器发送,但不向服务器发送参数数据
- Angularjs ajax return not consistent
- Angularjs Ajax 获取发送标头