2017-01-01 34 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 
相关问题