angularjs - 重构XMLHttpRequest到$ http

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angularjs - 重构XMLHttpRequest到$ http相关的知识,希望对你有一定的参考价值。

我想要以下代码

var request = new XMLHttpRequest();
    request.open("PUT", dbServer + "/configItemAdd");
    request.send(new FormData(form));
    request.onreadystatechange = function () {
        if(request.readyState == 4 && request.status == 200) {   window.location.reload(); }
};

看起来像这样

     const fd = new FormData(form);
     $http({
         method: 'PUT',
         url: dbServer + "/configItemAdd",
         data: fd
     }).then(function (resp){
         window.location.reload();
     });

问题是我收到两条错误消息:只有标签而没有文件输入我得到了SyntaxError:位于0的JSON中的意外的令牌#

并且使用文件输入我得到PayloadTooLargeError:请求实体太大

XMLHttpRequest代码正在使用和不使用输入文件。请帮忙:S

答案

您必须在您的请求中添加额外的标题,即{'Content-Type': 'multipart/form-data'}

const fd = new FormData(form);
 $http({
     method: 'PUT',
     url: dbServer + "/configItemAdd",
     Content-Type: 'multipart/form-data'
     data: fd
 }).then(function (resp){
     window.location.reload();
 });

以上是关于angularjs - 重构XMLHttpRequest到$ http的主要内容,如果未能解决你的问题,请参考以下文章

angularjs路由可以有默认参数值吗?

angularjs优化方略

在 Angularjs 组件之间共享数据

模块化 angularjs 应用程序 commonJS 与 AMD 模块语法

2021-04-19 从angularjs 迁移到vue

AngularJS1.X版本双向绑定九问