相当于Angular中的jQuery AJAX请求是什么?

问题描述 投票:0回答:1

我有一个用ASP.NET Core编写的后端代码,我正在上载包含文本字段和文件的multipart / form-data。当我向Postman发出POST请求时,它可以工作。我还尝试了它生成的请求的jQuery代码,它也可以工作。但是我找不到如何使用这些完全相同的选项和设置对Angular发出相同的请求。

[当我尝试使用Angular发出POST请求时,收到“ Stream意外结束,内容可能已被另一个组件读取。”

这是jQuery代码:

        var form = new FormData();

        form.append("some-field", "7500");
        form.append("isActive", "true");

        var files = $('#file')[0].files[0];
        form.append('file',files);

        var settings = {
            "async": true,
            "crossDomain": true,
            "url": "http://localhost:80/api/virtuallinks",
            "method": "POST",
            "headers": {
                "Authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6IkF1dGhvcml6YXRpb24iLCJyb2xlIjoiYWRtaW4iLCJpZCI6IjFhMGQxZDI2LTI3M2ItNGE1Yy05MDIwLTFhZjg0MmMyYjAzYSIsInVzZXJuYW1lIjoic2p1aGF5biIsIm5iZiI6MTU5MTEzNzQ0MiwiZXhwIjoxNTkxMTQ4MjQyLCJpYXQiOjE1OTExMzc0NDIsImlzcyI6IkV4cGVuc2VzSXNzdWVyIiwiYXVkIjoiRXhwZW5zZXNBdWRpZW5jZSJ9.58cvRGGuCg_JxqRIL7ZTguGYOJkfGJjvRLxFOU8E8rQ",
                "cache-control": "no-cache",
                "Postman-Token": "85a71e1f-7e53-4f1a-a796-2530f4792569"
            },
            "processData": false,
            "contentType": false,
            "mimeType": "multipart/form-data",
            "data": form
        }
        $.ajax(settings).done(function (response) {
            console.log(response);
        });
jquery angular http-post
1个回答
0
投票

我所做的就是完全删除了'Content-Type'标头,并且可以正常工作!!!!!!

我替换了此:

 this.http.post(this.url ,data,{
  headers: new HttpHeaders({
    Authorization: 'Bearer ' +StorageService.get(LOG_INFO).token,
    'Content-Type': contentType
  })
})

带有此:

 this.http.post(this.url ,data,{
  headers: new HttpHeaders({
    Authorization: 'Bearer ' +StorageService.get(LOG_INFO).token,
  })
})

[通常,我会删除此问题,因为它没有得到任何答案,而解决方案却与人们可能会想到的问题无关。但这正是为什么我要保留它的原因,以防万一有人遇到同样的问题。

© www.soinside.com 2019 - 2024. All rights reserved.