我需要上传一个文件并发送一些json,我有这个功能:

POST_formData(url, data) {
        var headers = new Headers(), authtoken = localStorage.getItem('authtoken');

        if (authtoken) {
            headers.append("Authorization", 'Token ' + authtoken)
        }

        headers.append("Accept", 'application/json');
        headers.delete("Content-Type");

        var requestoptions = new RequestOptions({
            method: RequestMethod.Post,
            url: this.apiURL + url,
            headers: headers,
            body: data
        })

        return this.http.request(new Request(requestoptions))

        .map((res: Response) => {
            if (res) {
                return { status: res.status, json: res.json() }
            }
        })
    }

我的问题是,如果我将content-type设置为"multipart/form-data",我的服务器会抱怨边界,如果我完全删除content-type头,我的服务器会抱怨它"text/plain"是受支持的媒体类型.

那么,如何使用angular2发送FormData?

推荐答案

这是一个Open Isuue on Angular2 Git存储库,还有一个Pull Request等待合并,希望它能很快合并.


Alternatively,

为此,可以直接使用XMLHttpRequest对象.

别忘了设置标题

xhr.setRequestHeader("enctype", "multipart/form-data");

// IE workaround for Cache issues
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.setRequestHeader("Cache-Control", "no-store");
xhr.setRequestHeader("Pragma", "no-cache");

在你赚的XMLHttpRequest美元上.


Similar Questions:

How to upload file in Angular2

Angular 2 File upload from input type=file

Angular2 post uploaded file

Typescript相关问答推荐

类型脚本如何将嵌套的通用类型展开为父通用类型

Typescript对每个属性具有约束的通用类型

如何在ts中使用函数重载推断参数类型

angular 17独立使用多个组件(例如两个组件)

为什么TypeScript失go 了类型推断,默认为any?''

webpack错误:模块找不到.当使用我的其他库时,

react 路由6操作未订阅从react 挂钩表单提交+也不使用RTK查询Mutations

获取函数中具有动态泛型的函数的参数

了解类型规则中的关键字

寻址对象中路径的泛型类型

如何 bootstrap TS编译器为类型化属性`T`推断正确的类型?

如何合并两个泛型对象并获得完整的类型安全结果?

如何在省略一个参数的情况下从函数类型中提取参数类型?

自定义 Select 组件的类型问题:使用带逗号的泛型类型<;T与不带逗号的<;T&>;时出错

在打字脚本中对可迭代对象进行可变压缩

如何将spread operator与typescripts实用程序类型`参数`一起使用

try 使Angular依赖注入工作

有没有什么方法可以使用ProvideState()提供多个削减器作为根减减器

React-跨组件共享功能的最佳实践

两个接口的TypeScript并集,其中一个是可选的