处理@ngrx/effects中的非JSON数据
Handle non-JSON data in @ngrx/effects
我不知道如何处理@ngrx/effects
中的非JSON数据
我要解析的文字不是JSON
//effects
@Effect() getNonJsonData = () => this.actions
.ofType<GetNonJsonAction>(GET_NON_JSON_DATA)
.switchMap(() => this.api
.getNonJsonData()
.map(getNonJsonDataFulfilled)
.catch(error => Observable.of(getNonJsonDataRejected(error)))
)
//api
getNonJsonData(): Observable<string> {
return this.http.get<string>('my_http_url');// It returns 'ACCESS' or 'NON_ACCESS' string not return JSON
}
它总是去 getNonJsonDataRejected
行动,它不会去 getNonJsonDataFulfilled
行动。
我收到这条错误信息
"Http failure during parsing, name:"HttpErrorResponse"
SyntaxError: Unexpected token A in JSON at position 0 at Object.parse (<anonymous>) at XMLHttpRequest.onLoad
请告诉我。
我终于找到了答案,我们需要在 http api 调用中添加 {responseType: 'text'}
,所以代码是,
getNonJsonData(): Observable<string> {
return this.http.get('my_http_url', {responseType: 'text'});
}
参考:https://blog.hackages.io/angular-http-httpclient-same-but-different-86a50bbcc450
我不知道如何处理@ngrx/effects
中的非JSON数据我要解析的文字不是JSON
//effects
@Effect() getNonJsonData = () => this.actions
.ofType<GetNonJsonAction>(GET_NON_JSON_DATA)
.switchMap(() => this.api
.getNonJsonData()
.map(getNonJsonDataFulfilled)
.catch(error => Observable.of(getNonJsonDataRejected(error)))
)
//api
getNonJsonData(): Observable<string> {
return this.http.get<string>('my_http_url');// It returns 'ACCESS' or 'NON_ACCESS' string not return JSON
}
它总是去 getNonJsonDataRejected
行动,它不会去 getNonJsonDataFulfilled
行动。
我收到这条错误信息
"Http failure during parsing, name:"HttpErrorResponse"
SyntaxError: Unexpected token A in JSON at position 0 at Object.parse (<anonymous>) at XMLHttpRequest.onLoad
请告诉我。
我终于找到了答案,我们需要在 http api 调用中添加 {responseType: 'text'}
,所以代码是,
getNonJsonData(): Observable<string> {
return this.http.get('my_http_url', {responseType: 'text'});
}
参考:https://blog.hackages.io/angular-http-httpclient-same-but-different-86a50bbcc450