为了账号安全,请及时绑定邮箱和手机立即绑定

多形零件类型在 Angular 中不起作用

多形零件类型在 Angular 中不起作用

梦里花落0921 2022-06-16 16:53:30
设置:使用 Angular 6http 版本 - "@angular/http": "^6.1.9",我尝试使用多部分表单数据作为标题发布 csv 文件,但它使请求失败。似乎浏览器总是将内容类型发送为“application-json”。我尝试了互联网上提供的许多方法来更改内容类型,但没有任何效果。我尝试的其中一些将内容类型设置为未定义,这会在 http.js 文件中引发错误,让浏览器检测到如此忽略的设置内容类型也失败了。请帮助我groupBulkUpload(file) {      const formData = new FormData();    formData.append('file', file);    // commented the below lines    // formData.append('file', file, { type: 'text/csv' }));    // let header = new HttpHeaders()    // .set("Content-Type" , `multipart/form-data; boundary=${formData._boundary}`)    // let options = { headers: header };    let url = this.getAnyConfigUrl("rate");    return this.http.post(url,formData)  } //calling the api const blob = new Blob([csvData]);    var f = new File([blob] , "filename.csv", {type: 'text/csv', lastModified: new Date().getDate()})    this._config.groupBulkUpload(f).subscribe(val=>{      console.log(val)    })更新:浏览器始终将其视为 Json 类型。所以它无法检测到我猜测的 CSV 格式。任何想法 ?请求标头:请求有效载荷:
查看完整描述

1 回答

?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

请检查您是否使用拦截器来拦截http请求并添加JSON数据类型。


您在 append 方法中缺少第三个参数(这是可选的),但您可以将文件名作为第三个参数传递。对于文件formData.append,您可以将文件名作为第三个参数传递。如果我们省略blobtype 的第三个参数,那么默认文件名将是blob.


参数:


name 其数据包含在 value 中的字段的名称。


value 字段的值。这可以是 USVString 或 Blob(包括 File 等子类)。如果没有指定这些值,则将值转换为字符串。


filename 可选 当 Blob 或 File 作为第二个参数传递时,报告给服务器的文件名(USVString)。Blob 对象的默认文件名是“blob”。File 对象的默认文件名是文件的文件名。


试试这个并从拦截器中删除这个调用。


groupBulkUpload(file) {

    const formData = new FormData();

    formData.append('file', file, "filename.csv");

    let url = this.getAnyConfigUrl("rate");

    return this.http.post(url, formData);

}

//calling the api

const blob = new Blob([csvData]);

var f = new File([blob], "filename.csv", { type: 'text/csv', lastModified: new Date().getDate() })

this._config.groupBulkUpload(f).subscribe(val => {

    console.log(val)

})


查看完整回答
反对 回复 2022-06-16
  • 1 回答
  • 0 关注
  • 105 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号