为什么我的 Angular 6 httpClient POST 请求会触发两次

马库斯

我正在将图像从我的 Angular 前端上传到 C# web api 后端,并且服务中的 POST 请求调用了两次,尽管该服务只调用了一次。

调试通过,服务只调用一次,但在 Fiddler 中看到 2 个 post 请求,在浏览器的开发工具中看到网络选项卡

HTML:

<form [formGroup]="uploadForm" (ngSubmit)="upload()" >
  <input id="cin" name="cin" type="file" (change)="fileChangeEvent($event)" 
    placeholder="Upload a file..." multiple />

  <button type="submit" class="btn btn-success btn-s">
    <i class="glyphicon glyphicon-open-file"></i>&nbsp;Upload
  </button>
</form>

成分:

export class UploadCreateComponent implements OnInit {
  public uploadForm: FormGroup;
  public successMessage: string;
  public errorMessage: string;
  selectedFile: File;
  files: Array<File> = [];

  constructor(fb: FormBuilder, private service: UploadService, private cd: ChangeDetectorRef) {
    this.uploadForm = fb.group({
      files: [null, Validators.required]
    });
  }

  ngOnInit() {
  }

  upload() {
    const files: Array<File> = this.files;
    if (files.length === 0) {
      this.errorMessage = 'Please select some files';
      return;
    }
    this.service.createUpload(files).subscribe(event => {
      console.log(event);
      this.successMessage = 'Success';
    }, (error) => {
      console.error(error);
      this.errorMessage = 'Error: ' + error;
    });
  }

  fileChangeEvent(fileInput: any) {
    this.files = <Array<File>>fileInput.target.files;
  }
}

服务:

public createUpload(files: any): Observable<any> {
    let input = new FormData();
    for (let i = 0; i < files.length; i++) {
      input.append('files', files[i]);
    }
    return this.http.post(this.baseUrl + 'api/Upload/PostImage', input);
  }
马库斯

我发现了这个问题……我的后端返回了一个错误:“位置 2 处的 JSON 中的意外令牌 f”我试图在我的 C# web api 控制器中执行以下操作:

    [HttpPost, Route("PostImage"), DisableRequestSizeLimit]
    public async Task<IActionResult> PostImage(List<IFormFile> files)
    {
        if (files == null || files.Count == 0)
        {
            return BadRequest("Invalid files");
        }

        var imageUploadCount = await _context.UploadFile(files);
        if(imageUploadCount > 0)
        {
            var resultMessage = string.Format($"{imageUploadCount} file(s) uploaded successfully.");
            return Ok(resultMessage);
        }
        return BadRequest("No files uploaded");

    }

如果我删除结果消息,则一切正常。不知道为什么它会出错,但那是一个不同的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我对 PHP 文件的 Angular POST 请求返回 404?

来自分类Dev

如何通过 Angular 的 HttpClient 发送 POST 请求?

来自分类Dev

Angular 6 HTTPClient:请求触发一次,收到 2 个响应

来自分类Dev

为什么我对PHP页面的Angular POST请求没有设置POST数组?

来自分类Dev

为什么我对PHP页面的Angular POST请求没有设置POST数组?

来自分类Dev

无法弄清楚为什么此ajax请求会触发两次

来自分类Dev

为什么我不能在一个 post 请求中使用 res.json() 两次?

来自分类Dev

我的 ajax post 请求被调用了两次

来自分类Dev

为什么我需要两次单击两次才能使用angular8和jquery触发onclick事件

来自分类Dev

为什么请求事件被触发两次

来自分类Dev

为什么我的Xcode机器人会触发两次?

来自分类Dev

为什么Angular AJAX请求在Chrome网络标签中两次可见

来自分类Dev

为什么我的angular2应用初始化两次?

来自分类Dev

为什么python会读取我的文件两次?

来自分类Dev

Ionic / Angular HttpClient.post 执行两个服务器帖子:“OPTIONS”和“POST”

来自分类Dev

为什么http请求从客户端发送两次到服务器(OPTION和POST)

来自分类Dev

HttpClient的F#POST请求

来自分类Dev

Angular HttpClient:如果get()失败,则执行post()

来自分类Dev

为什么单击提交时kendoForm会两次触发?

来自分类Dev

为什么此Ember.computed属性的观察者会触发两次?

来自分类Dev

为什么在模态对话框中调用Hide()时,FormClosing会触发两次?

来自分类Dev

Apache两次发送POST请求

来自分类Dev

为什么我的save_post操作不触发?

来自分类Dev

为什么我的save_post操作不触发?

来自分类Dev

(Angular 6)单击按钮两次才能工作

来自分类Dev

为什么我对MVS POST函数的调用会跳过RedirectToAction?

来自分类Dev

为什么我的数组参数不在 POST 请求中?

来自分类Dev

Angular 6, Rxjs 6, 使用 HttpClient 处理登录

来自分类Dev

为什么我的对象被添加了6次?

Related 相关文章

  1. 1

    为什么我对 PHP 文件的 Angular POST 请求返回 404?

  2. 2

    如何通过 Angular 的 HttpClient 发送 POST 请求?

  3. 3

    Angular 6 HTTPClient:请求触发一次,收到 2 个响应

  4. 4

    为什么我对PHP页面的Angular POST请求没有设置POST数组?

  5. 5

    为什么我对PHP页面的Angular POST请求没有设置POST数组?

  6. 6

    无法弄清楚为什么此ajax请求会触发两次

  7. 7

    为什么我不能在一个 post 请求中使用 res.json() 两次?

  8. 8

    我的 ajax post 请求被调用了两次

  9. 9

    为什么我需要两次单击两次才能使用angular8和jquery触发onclick事件

  10. 10

    为什么请求事件被触发两次

  11. 11

    为什么我的Xcode机器人会触发两次?

  12. 12

    为什么Angular AJAX请求在Chrome网络标签中两次可见

  13. 13

    为什么我的angular2应用初始化两次?

  14. 14

    为什么python会读取我的文件两次?

  15. 15

    Ionic / Angular HttpClient.post 执行两个服务器帖子:“OPTIONS”和“POST”

  16. 16

    为什么http请求从客户端发送两次到服务器(OPTION和POST)

  17. 17

    HttpClient的F#POST请求

  18. 18

    Angular HttpClient:如果get()失败,则执行post()

  19. 19

    为什么单击提交时kendoForm会两次触发?

  20. 20

    为什么此Ember.computed属性的观察者会触发两次?

  21. 21

    为什么在模态对话框中调用Hide()时,FormClosing会触发两次?

  22. 22

    Apache两次发送POST请求

  23. 23

    为什么我的save_post操作不触发?

  24. 24

    为什么我的save_post操作不触发?

  25. 25

    (Angular 6)单击按钮两次才能工作

  26. 26

    为什么我对MVS POST函数的调用会跳过RedirectToAction?

  27. 27

    为什么我的数组参数不在 POST 请求中?

  28. 28

    Angular 6, Rxjs 6, 使用 HttpClient 处理登录

  29. 29

    为什么我的对象被添加了6次?

热门标签

归档