var formData = new FormData();
formData.append('type', type);
formData.append('description', description);
formData.append('photo', photo);
var request = new XMLHttpRequest();
request.open('POST', '{{ path('my_webservice') }}');
request.send(formData);
如何使用FormData
发送$http
?
上述代码的主要问题是我不知道如何在收到响应时生成回调。
所以,如果我能在Angular I中进行更熟悉的领域。
由于
这似乎是异常的。在易于实施方面,似乎比任何Angular解决方案都要好。
request.onload = function (e) {
if (request.readyState == 4 && request.status == 200) {
console.log(request.responseText);
}
};
答案 0 :(得分:1)
您可以使用$http
发帖。
但必须将content-type
更改为application/x-www-form-urlencoded
,并且应使用key=value
对序列化数据。
应将这些设置注入XMLHttpRequest
的基础$http
对象。
Here是一篇文章,向您展示如何做到这一点。
答案 1 :(得分:0)
在表单中添加ng-submit
属性,并为其分配一个函数,以使用$ http服务处理POST请求。 Angular使用promises
API处理http响应。以下是https://docs.angularjs.org/api/ng/service/ $ http:
$http({
method: 'GET',
url: '/someUrl',
data: { type: 'myType',
description:'myDescription'
}
}).then(function successCallback(response) {
// this callback will be called asynchronously
// when the response is available
}, function errorCallback(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
答案 2 :(得分:0)
<强> AngularJS 强>:
$http.post(myRestUrl, {my:"object"}).success(function(data, status, headers, config){/* DO STUFF*/});
在https://docs.angularjs.org/api/ng/service/$http
了解详情或者使用 XMLHttpRequest 执行此操作:
client.onreadystatechange = function() {
if(this.readyState == 2) {
print(this.getAllResponseHeaders());
}
}