我向服务器发送获取请求,它需要一个JWT令牌进行身份验证。然而,Ionic坚持要做一个没有问题并且崩溃的pref-etch请求。 (?另外有没有什么办法来捕捉非200个响应服务器对很多这些的(如403 {消息:帐户无效}))带有授权标头的离子http请求
代码
auth.ts
import { Headers, RequestOptions } from '@angular/http'
import 'rxjs/add/operator/toPromise';
...
export const getToken = function(http){
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
headers.append('Authorization', 'JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU4Yzg1MmI1YmQ1NjE1MGJkMDAxZWEzNyIsImlhdCI6MTQ4OTY3ODE0NywiZXhwIjoxNDg5NjgxNzQ3fQ.zUWvBnHXbgW20bE65tKe3icFWYW6WKIK6STAe0w7wC4');
let options = new RequestOptions({headers: headers});
http.get('//localhost:3000/auth/users', {headers: options})
.toPromise()
.then(res => resolve(res))
.catch(err => console.log(err));
});
}
Chrome的控制台:
Response for preflight has invalid HTTP status code 401
服务器看到:(我注销请求,也没有头部或身体)
OPTIONS /auth/users 401 25.613 ms - -
仅将http.get的使用更新为/ auth/users并更新ionic.project文件的代理设置 –