【发布时间】:2019-12-10 14:13:33
【问题描述】:
这是我的第一个 Ionic 应用程序,我使用 Angular 7.2.2 的第 4 版。
所以我在请求一个以文本格式接收和响应的 API 时遇到了一些困难。
这是我的代码(我从教程中复制的)。
login(email: String, password: String) {
let formData = {user:'myuser',pass:'mypass'}
return this.http.post(this.env.API_URL+'/login', JSON.stringify(formData), {responseType:'text'}).pipe(
tap(token => {
this.storage.set('token', token)
.then(
() => {
console.log('Token Stored: ' + token);
},
error => console.error('Error storing item', error)
);
this.token = token;
this.isLoggedIn = true;
return token;
}),
);
}
因此,请求被触发并返回 HTTP 200,但预览和响应选项卡(chrome 检查器)显示“此请求没有可用的响应数据”。
日志console.log('Token Stored: ' + token); 被触发但显示空令牌Token Stored:
此外,控制台显示警告:
Cross-Origin Read Blocking (CORB) blocked cross-origin response http://...site.net/api/login
with MIME type application/json. See https://www.chromestatus.com/feature/5629709824032768
for more details.
由于我是 typescript 和 Ionic 的新手,我不知道如何处理这个问题。
有人可以帮忙吗?
【问题讨论】:
-
这是浏览器记录的唯一消息吗?它是否还记录有关缺少 Access-Control-Allow-Origin 标头的消息?响应的 HTTP 状态码是什么?您可以使用浏览器开发工具中的网络窗格进行检查。是 4xx 还是 5xx 错误而不是 200 OK 成功响应?实际的反应是什么样的?在 devtools 的 Network 窗格中检查它?它实际上是 JSON 吗?你的代码到底在做什么?
-
@sideshowbarker 是的,这是唯一的消息...请求返回 HTTP 200 OK 但没有响应数据...在邮递员中,我可以看到 API 工作正常并返回带有 JSON 的文本格式
-
在邮递员中,我可以看到 API 在
{"token":"mytokenhere"}中使用 JSON 转换文本格式
标签: google-chrome ionic-framework cors