2017-04-13 10 views
0

Angular2、TypeScriptを使用してファイルをJSONデータとともにサーバーに送信しています。角度2のファイルをアップロードしてダウンロードしますか?

HTMLコード

<input type="file" class="form-control" name="avatar" id="uploadyour" name="uploadyour" #uploadyour="ngModel" [(ngModel)]="model.uploadyour" 
      (change)="fileChange($event)" placeholder="Upload file" accept=".pdf,.doc,.docx" > 

app.component.ts。

import { Http, Headers, Response, Request, RequestMethod, URLSearchParams, RequestOptions } from "@angular/http"; 
import * as FileSaver from "file-saver"; 
import {Observable} from 'rxjs/Rx'; 
import { Injectable } from '@angular/core'; 

fileChange(event) { 
    let fileList: FileList = event.target.files; 
    if(fileList.length > 0) { 

     let file: File = fileList[0]; 
     let formData:FormData = new FormData(); 
     console.log(file); 
     formData.append('uploadFile', file, file.name); 
     let headers = new Headers(); 
     headers.append('enctype', 'multipart/form-data'); 
     headers.append('Accept', 'application/json'); 
     console.log(headers); 
     let options = new RequestOptions({ headers: headers }); 
     console.log(formData); 
     this.http.post("http://localhost:1337/trackstatus/upload", formData, options) 
      .map(res => res.json()) 
      .catch(error => Observable.throw(error)) 
      .subscribe(
       data => console.log('success'), 
       error => console.log(error) 

      ) 
     } 

    } 



controller.js 

upload: function (req, res) { 
    req.file('avatar').upload(function (err, files) { 
     if (err) 
     return res.serverError(err); 

     return res.json({ 

     message: files.length + ' file(s) uploaded successfully!', 

     files: files 

       }); 
      }); 



     }, 

以下のエラーが発生しています。

XMLHttpRequestはhttp://localhost:1337/trackstatus/uploadをロードできません。要求ヘッダーフィールドenctypeは、プリフライト応答でAccess-Control-Allow-Headersによって許可されていません。

+0

の可能性のある重複した[原点はアクセス制御 - 許可 - 起源によって許可されていません] (http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access-control-allow-origin) –

+0

ここでapp.componentに「Access-Control-Allow-Origin」を追加したい.tsまたはcontroller.js。 – phani

答えて

0

Angular Codeが実行されているドメインからのAJAX要求を許可するには、サーバーの設定を更新する必要があります。あなたのAngularアプリが既にどこかに公開されている場合、これはlocalhostやその他のドメインになる可能性があります。 CORS設定の変更方法の詳細は、サーバー側のスタックに依存しますが、このSOの答えは、一般的な修正を示しています

https://stackoverflow.com/a/10143166/571237

関連する問題