私は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
エラーを取得:
私は何をしないのですか?私は問題がMVCのサーバー側にありますが、どこから探し始めるべきか分かりませんという強い疑いがあります。