我把请求发送给服务器。我为请求添加了错误处理程序,但是我在下面得到了控制台错误:
发布http://localhost:7777/auth 401 (未经授权)
http://prntscr.com/hdjm6h
我发送401代码从服务器进行测试,现在我不知道有删除这条消息。
import {HttpClient} from "@angular/common/http";
import {WebStorage} from "../singleton/web-storage";
import {environment} from "../../environments/environment";
import * as $ from "jquery/dist/jquery.slim";
import {Injectable} from "@angular/core";
import {Observable} from "rxjs/Observable";
import * as jwtDecode from 'jwt-decode';
import {RequestHandler} from "../handler/request.handler";
@Injectable()
export class Auth {
constructor(private httpClient: HttpClient,
private requestHandler: RequestHandler) {
}
/**
* Check is user authorized
*
* @returns {Observable<Response>}
*/
isAuthorized(): Observable<Response> {
return new Observable((observer) => {
let formData: Object = $.param({
transferData: {
jwt: WebStorage.ssRetrieve('jwt')
}
});
this.httpClient.post<Object>(environment.getUrl('/auth'), formData, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
})
.subscribe(
(response: Response) => {
observer.next(response);
},
error => {}// For this example, error handler is empty, just for hide most console errors
);
});
}
}任何建议!
发布于 2017-11-22 04:01:00
您可以将可观察到的捕捉属性用作:
this.httpClient.post(your_url).catch((ex,caught) => {
console.log('An exception has been caught!');
return Observable.empty();
})在这里,您可以抛出错误,而不是返回空的可观察到的,但这正是您希望避免的。因此,返回空可观察解决了你的情况。
https://stackoverflow.com/questions/47424534
复制相似问题