2017-12-25 8 views
2

私はAngular 2.XからAngular 5.Xに移行して以来、私はHTTP要求の実行にいくつかの問題を抱えてきました。私は上から始めます。ASP MVC4とAngular 5 HttpClientを連携させる

ここで私はいくつかのテストMVCコントローラとテストのアクションを持っている:

public class AccountController : ApiController 
{ 
    [HttpPost] 
    public ObjResultFunc Test() 
    { 
     return new ObjResultFunc(() => new { Data = "Some Text" }); 
    } 
} 

と設定:

public static class WebApiConfig 
{ 
    public static void Register(HttpConfiguration config) 
    { 
     config.EnableCors(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{action}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 
} 

次に、ここではそのHTTPモジュールの現在のAngularJS 2.Xの実装です働いた:

また、this.API_URLは、

import { InjectionToken } from '@angular/core' 
export const activeUrlToken = new InjectionToken('activeUrlToken'); 
export const activeUrl = 'http://localhost:3144/api'; 

とテスト機能を呼び出すことが働いた:HTTPは、もはや仕事したかったし、にHttpClientを使用することを推奨しているので this.mvcAngularService.post('Account', 'Test', null).subscribe(data => { console.log(data); });

をそれから私は角5.XでHttpClientモジュールを使用するMVCAngularDataServiceを適応していません今、次のように見えます5.Xに:私はシンプルなポストを実行しようとするたび

import { Injectable, Inject } from '@angular/core'; 
import { activeUrlToken } from '../app/providers' 
import { HttpClient } from '@angular/common/http' 

import { Observable } from 'rxjs/Rx'; 

@Injectable() 
export class MVCAngularDataService { 

    constructor(private http: HttpClient, @Inject(activeUrlToken) private API_URL: string) { 

    } 

    private handleError(error: Response | any) { 
    console.error('ApiService::handleError', error); 
    return Observable.throw(error); 
    } 

    public post(controller: string, action: string, data: any): Observable<any> { 
    return this.http 
     .post(this.API_URL + '/' + controller + '/' + action, data) 
     .catch(this.handleError); 
    } 

} 

は今、私は404 - Not Foundエラーを取得:

404

Network Details

私は何をしないのですか?私は問題がMVCのサーバー側にありますが、どこから探し始めるべきか分かりませんという強い疑いがあります。

答えて

0

nodu_modulesフォルダーにアクセスして、@angular/common/httpを確認してください。私の@ angular/common/httpが見つからなかったことがありました。

関連する問題