【问题标题】:Angular 2: EXCEPTION: Response with status: 0 for URL: nullAngular 2:异常:响应状态为:0 对于 URL:null
【发布时间】:2017-01-24 00:24:34
【问题描述】:

我正在尝试使用 http.get 从我的 Angular2/ionic2 应用程序发送 HTTP GET 请求。 HTTP GET 请求包含一个有效的 Linkedin 访问令牌,并且应该返回一些配置文件数据。但是在调用getProfileData()时会出现如下错误:

3     229881   group    EXCEPTION: Response with status: 0  for URL: null
4     229895   error    EXCEPTION: Response with status: 0  for URL: null
5     229909   groupEnd
6     229950   error    Uncaught Response with status: 0  for URL: null, http://192.168.178.49:8100/build/js/app.bundle.js, Line: 95774

仍然:

  • 在 www.hurl.it 上测试时,具有相同 URL 的 GET 请求有效
  • 从应用程序调用的 GET 请求使用不同的 URL,例如let URL = "https://httpbin.org/get?name=hannes"

入职加载.ts:

import { Component } from '@angular/core';
import { NavController, Platform, Alert } from 'ionic-angular';
import { OnboardingHelloPage } from '../onboarding-hello/onboarding-hello';
import { CordovaOauth, LinkedIn } from 'ng2-cordova-oauth/core';    
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map'


@Component({
  templateUrl: 'build/pages/onboarding-load/onboarding-load.html',
})
export class OnboardingLoadPage {
  private data;
  private code;

constructor(private navCtrl: NavController, private platform: Platform, private http: Http) {
    this.http = http;
    this.navCtrl = navCtrl;
  }

public getProfileData() {
  let URL = "https://api.linkedin.com/v1/people/~?oauth2_access_token=SOMEVALIDTOKEN&format=json";
  //let URL = "https://httpbin.org/get?name=hannes"

  this.http.get(URL)
    .map(res => res.json())
    .subscribe(data => {
      this.data = data;
      console.log(JSON.stringify(data));
  });
  // go to next page
  this.viewOnboardingHello();
}
...
}

【问题讨论】:

  • 有同样的问题。这非常烦人。所以基本功能不起作用并涵盖微不足道的情况
  • 需要解决这个问题
  • 发生此问题时,通常是 CORS 问题,

标签: angular linkedin ionic2


【解决方案1】:

这可能是 CORS 问题。
您的 Angular2 APP 托管在您调用的 API 之外的另一台服务器上。

如果你想绕过这个(仅用于测试目的),安装this Chrome extension并添加

访问控制允许来源:

到您的标题。
对于实际使用,您应该从您的服务器(Node、PHP、Python ...)(托管 angular2 APP 的地方)调用 API 并将数据传递给您的 angular2 APP。

【讨论】:

    【解决方案2】:

    附带说明,当服务器刚刚离线时也会发生这种情况。

    我最终来到这里是因为我想知道状态 0 和 URL 为空是否有官方含义。

    【讨论】:

    • 如果服务器离线,有什么解决办法吗?
    • 就我而言,没有。更具体地说,当我的“数据”服务器(RESTful API)无法访问时,我会得到这种响应。所以 Angular 应用程序无法获取任何数据。
    • 更新:根据您需要提供的数据,您可能对Service Worker 感兴趣。这可能会让您的应用经历一次临时的服务器停机时间。
    【解决方案3】:

    我们的日志中有一些。经过一番挖掘,在浏览器开始导航到新网址后,每当 ajax 请求中止时,它们似乎就会出现。

    【讨论】:

      【解决方案4】:

      我在运行 Jesmine/Karma 单元测试时遇到了类似的问题。经过长时间的检查,我才知道这个问题是因为某些服务没有正确模拟。当测试用例加载的服务调用被浏览器中止时。因此这个错误来了。

      【讨论】:

        猜你喜欢
        • 2023-03-11
        • 2017-07-06
        • 2018-08-16
        • 2017-10-29
        • 2017-11-08
        • 1970-01-01
        • 2018-06-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多