2017-07-11 25 views
0

のEmpty JSONを返します。MVC呼び出しAPIから空のJSONが返されます。Angular 4とASP.Net MVC 5:角度のアプリケーションとasp.netのマージ後に

角度とasp.netは同じドメインにあります。

私がPostManでAPIを呼び出すと、結果がJSONになります。角度のあるアプリで呼び出すと、JSONの結果は空になります。

マージして同じドメインでサービスした後、asp.net MVCと角度アプリを通信するためのヒントはありますか?

アップデート1:

Webサービスを呼び出すために使用されるコード:

getSheets(): Observable<Sheet[]> { 
return this.http.get(this.config.apiUrl + '/api/SheetsRelationAPI', 
this.jwt()) 
    .map(this.extractData) 
    .do(data => console.log('SheetsData:', data)) // debug 
    .catch(this.handleError); 
} 


/** 
* Handle HTTP error 
*/ 
private handleError(error: any) { 
// In a real world app, we might use a remote logging infrastructure 
// We'd also dig deeper into the error to get a better message 
const errMsg = (error.message) ? error.message : 
    error.status ? `${error.status} - ${error.statusText}` : 'Server error'; 
console.error(errMsg); // log to console instead 
return Observable.throw(errMsg); 
    } 

// private helper methods 

private jwt() { 
// create authorization header with jwt token 
const currentUser = JSON.parse(atob(this.cookie.getCookie('currentUser'))); 
    if (currentUser && currentUser.access_token) { 
    const headers = new Headers({ 'Authorization': 'Bearer ' + currentUser.access_token}, 
); 
    return new RequestOptions({ headers: headers }); 
    } 
    } 
    private extractData(res: Response) { 
const body = res.json(); 
return body || []; 
} 

アップデート2:

私は外ドメインからそれを、それを呼び出した場合、私は私のAPIことに気付きます2回応答:

google chrome inspでネットワークを検査する電気ショック療法の要素:

最初の反応は、「zone.js」イニシエータであり、第二の反応は、「その他」のイニシエータ

私は、ドメインの内部からAPIを呼び出す場合、私はちょうど「ゾーンからの応答を持っています。 js "イニシエータを呼び出し、空のJSONを返します。

アップデート3

export class OtherComponent implements OnInit { 
sheets: Sheet[] = []; 
errorMessage: string; 
constructor(private httpService: HttpService) { 
    // this.sheets = this.ichartHttp.getSheets(); 
    // console.log(this.sheets); 
} 
getSheets() { 
    this.httpService.getSheets() 
     .subscribe(
     sheets => this.sheets = sheets, 
     error => this.errorMessage = <any>error 
     ); 
} 

ngOnInit() { 
    this.getSheets(); 
} 
} 
+0

といただきました!あなたの新しい角度のコードを見てみましょうか? – Unlockedluca

+0

@Unlockedluca私の質問を更新します – Adnan

+0

どこで 'getSheets()'メソッドを呼び出しますか? –

答えて

0

問題は、私は2種類の認証を使用して、私の認証方法で で、MVCとWebAPIの私は、同じドメインの下にAPIにリクエストを送信する場合、彼らが競合。

だから私の答えは:あなたの角度コードがよさそうだ、あなたはWebサービスを呼び出すために使用しているあなたのミドルウェアプロジェクト

関連する問題