【问题标题】:ionic - cross-origin read blocking (CORB) - request returns 200 but no response dataionic - 跨域读取阻塞 (CORB) - 请求返回 200 但没有响应数据
【发布时间】: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


【解决方案1】:

通过禁用安全性打开 chrome 解决

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir=""

【讨论】:

    猜你喜欢
    • 2019-01-22
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 1970-01-01
    • 2019-12-02
    • 2019-08-05
    相关资源
    最近更新 更多