2017-11-06 4 views
0

매우 간단한 API를 사용하여 전자 메일로 사용자를 만들 수 있습니다. 이미 존재하는 경우 오류가 반환됩니다. 문제는이 API가 정상적으로 작동하지만 Ionic에서는 정상적으로 작동하지 않는다는 것입니다. 나는 완전히 새로운 사용자와 URL에 대한 요청을 만들 때, 그것은 이미 존재하는 응답을 반환하지만 데이터베이스를 볼 때, 그것은 실제로 만들어진 내가 무슨 일이 일어나고 무엇을 믿는HTTP POST에서 잘못된 응답을 반환합니다.

: 이온을 요청을 한 다음 완료 한 후 다른 요청을 수행하고 마지막 결과를 보여줍니다.

참고 :이 앱에는 "수퍼 템플릿"으로 사용했는데,이 문제가 발생하지 않았기 때문에 버그를 처리 할 수 ​​있는지 여부를 알 수 없습니다.

User.ts

signup(accountInfo: any) { 
this.api.post('create_user&name='+accountInfo.name+'&email=' + accountInfo.email + '&pass=' + Md5.hashStr (accountInfo.password), 
    {},this.reqOpts).map((res) => res.json()).subscribe((resp)=>{ 
    console.log(resp); 
    }) 

Api.ts 이미 여러 장소에서 .share()를 추가했는데, 내가 성공하지 못했습니다

post(endpoint: string, body: any, reqOpts?: any) { 
    return this.http.post(this.url + endpoint, reqOpts); 

.

+0

사용 디버거를 확인합니다 & 당신은 그것을 트리거 누가 찾을 수 있습니까? – Thabung

답변

0

부울로 여러 요청을 보내지 않도록 할 수 있습니까? 어쩌면 도움이 될지도 몰라. 요청을 보내는 동안 표시기 및 기타 필요한 사항을로드하는 데 도움이 될 수 있습니다.

때때로 사용자가 몇 번 클릭 할 수도 있고 여러 요청을 보낼 필요가 없기 때문에 요청이 진행 중인지 확인할 수 있습니다. 그것은 여러 요청을 않다면

isRequestSent: boolean = false;

signup(accountInfo: any) { 
    if(!this.isRequestSent) { 
     this.isRequestSent = true; 
     this.api.post('create_user&name='+accountInfo.name+'&email=' + accountInfo.email + '&pass=' + Md5.hashStr (accountInfo.password),{},this.reqOpts) 
     .map((res) => res.json()) 
     .subscribe((resp)=>{ 
      console.log(resp); 
      this.isRequestSent = false; 
     }, (error: any) => { 
      this.isRequestSent = false; 
     }); 
    } 
} 
+0

예, 완벽하지만 현재 문제는 나에게 반환되는 요청은 항상 사용자가 이미 존재한다는 결과입니다. 첫 번째 요청 (등록)은 결코 반환되지 않습니다 – Lucius0101

+0

흠, 그러면 웹 관리자를 열고 네트워크 탭으로 이동하여 2 POST 요청이 전송되는지 확인해야합니다. (주의 : 각도가 OPTIONS 요청을 보내 2 개의 요청이 전송되었다고 생각할 수 있지만 POST 요청이 2 개만 전송되는지 확인하십시오.) 이것은 사용자의 잘못이 아닌 백엔드 문제로 의심됩니다. –

+0

네트워크 탭에서 보는 그는 실제로 두 가지 요청을하지만 한 옵션, 다른 POST – Lucius0101