2017-01-01 58 views
0

Angular 1服務 我正在將我的應用程序從angular 1遷移到angular 2。 該角度1服務調用工作正常和取回響應

"getUserResource": function() { 
         return $resource(basePath + "api/v3/user/GetUser/:name", { name: "@name",password: "@password"}, { 
          get: { method: "GET", isArray: true } 
         }); 
        }, 

角2 該角度2呼叫未擊中web Api控制器,它給一個400 bad request錯誤

getUserResourcePromise(): Promise<User[]> { 
     let params = new URLSearchParams(); 
     params.set('name', 'test'); 
     params.set('password', 'test'); 
     return this.http.get(this.baseUrl + 'api/v3/user/GetUser/:name', { search: params.toString(), headers: this.headers }) 
      .toPromise() 
      .then(response => response.json().data as User[]) 
      .catch(this.handleError); 
    } 

Angular 1 vs Angular 2 URL's

http://localhost:58999/api/v3/user/GetUser/test?password=test(angular 1 url) 
http://localhost:58999/api/v3/user/GetUser/:name?name=test&password=test(angular 2 url) 

網頁API控制器

誰能告訴我如何使角2網址,以達到此控制器,我有什麼變化,使?

[RoutePrefix("api/v3/user")] 

[HttpGet] 
    [ResponseType(typeof(UsersModel))] 
    [Route("GetUser/{name}")] 
    public async Task<IHttpActionResult> GetUser(string name,string password) { 
    } 
+0

您能使用Postman的Angular 2 URL成功測試GET請求? – user6801750

+0

沒有我建立的角2網址是錯的,任何一個可以告訴我如何建立正確的網址(這是http:// localhost:58999/api/v3/user/GetUser/test?password = test)在角2? –

回答

0

我想你必須死您的網址...

getUserResourcePromise(): Promise<User[]> { 
     let querystring = 'test?password=test' 
     return this.http.get(this.baseUrl + 'api/v3/user/GetUser/'+queryString, {headers: headers}) 
      .toPromise() 
      .then(response => response.json().data as User[]) 
      .catch(this.handleError); 
    } 

如果你正在使用的變量queryString當然會是這個樣子:

let queryString = username+'?password'+password 
相關問題