Angular将$ http.post转换为XHR

时间:2017-04-28 11:14:37

标签: angularjs xmlhttprequest

我想做一些上传并获得如此进展的反馈。

我曾经做过的事情(在观察进展之前):

$http.post(BASE_URL, formData, {
withCredentials: true,
transformRequest: angular.identity,
params: {'context': context}
})

我尝试转换为:

var xhrObj = new XMLHttpRequest();
xhrObj.upload.addEventListener("progress", progressFunction, false);
xhrObj.open("POST", BASE_URL, true);
xhrObj.withCredentials = true;
xhrObj.setRequestHeader("Content-type", fileItem.file.type);
xhrObj.setRequestHeader("X_FILE_NAME", fileItem.file.name);
xhrObj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
xhrObj.setRequestHeader("Cache-Control", "no-cache, no-store, must-revalidate");
xhrObj.setRequestHeader("Pragma", "no-cache");
xhrObj.setRequestHeader("Expires", "0");
//xhrObj.setRequestHeader("Access-Control-Allow-Credentials", "false");
xhrObj.send(fd);

但似乎证书没有通过,我该怎么办?

1 个答案:

答案 0 :(得分:0)

好吧,所以不需要手动完成!

由于角度为1.5.4(以及1.5.5中的一些错误修正),您可以使用eventHandlers和uploadEventHandlers。

请参阅:https://code.angularjs.org/1.6.4/docs/api/ng/service/ $ http

那么就这么做:

View