【问题标题】:Angular 2 HTTPS requestAngular 2 HTTPS 请求
【发布时间】:2017-02-04 11:33:31
【问题描述】:

如何从 Angular 2 配置和发出 https 请求?

找不到任何资源。

有人可以在这里指导我吗?

谢谢。

【问题讨论】:

  • 与使用 HTTP 相同。是什么让您认为 HTTPS 需要一些特殊处理?
  • angular.io/docs/ts/latest/guide/server-communication.html 只需将额外的s 添加到您要获取的网址即可。
  • 谢谢大家,有点困惑。
  • @GauravRam:我也面临同样的问题。从浏览器或邮递员调用我的 api 时工作正常。但在从角度 2 调用它们时遇到问题

标签: angular https angular2-services angular2-http


【解决方案1】:

以防万一其他人尝试这样做

您应该像正常的 http 调用一样进行 https 调用,但您必须确保您的浏览器信任后端 API 使用的证书,并且您的浏览器可以连接到此 api。

注意:

它可能会在 YARC 或 REST 客户端中出现超时错误,因此您应该直接在浏览器中尝试简单的 GET 请求(即:导航到 https 获取请求)

例如,如果我们有这个 API

https://testDomain.com:7001/getCountries

尝试通过在浏览器中导航到该 url 来发出获取请求,如果您在本地或在 UAT 中进行测试,您的证书可能不会自动在浏览器中完全信任,因此您必须告诉 chrome 您信任这个网站并去那里(继续到这个网站)

如果可以在浏览器中成功调用这个get请求:

然后您可以按照以下资源调用 https api,就像调用普通 http(具有完整正确的 URL 和 https 和端口号)一样:

1-Angular httpClient guide

2- 您也可以查看this excellent guide on making http calls in Angular 5

【讨论】:

  • 我无法访问它。我收到“ERR_CERT_AUTHORITY_INVALID”错误...有什么方法可以在 Angular 中“跳过认证授权检查”??
【解决方案2】:

只需确保您传递给参数的请求 URL 是 https。

如果您使用的是完整路径,那很简单,您可以指定 https、I.E. 'https://request.url.com'。

如果它是您的应用程序的相对路径,例如“/api/some/data”,那么您的应用程序应安全托管并使用 https 连接访问。

【讨论】:

    【解决方案3】:

    这个答案有点晚了,但对于刚刚搜索它的人来说,这可能会有所帮助。

    使用最新版本的 Angular,您可以使用 http interceptor 来执行此操作,如 angular docs 所示

    【讨论】:

      【解决方案4】:

      简短回答,将其添加到您的 page.ts 顶部:

      import {Http} from '@angular/http';
      

      然后在你的页面类中(@component 下面),在你的构造函数中,像这样添加'public http:Http':

      constructor(public http:Http, public navCtrl: NavController, public navParams: NavParams) {}
      

      然后在您的构造函数之外(在您的页面类内),使 http 请求函数如下:

      httprequest(url) {
              this.http.request(url).map(res => JSON.parse(res['_body']));
              }
      

      然后在页面类中的任何位置使用它,如下所示:

      this.httprequest('http://your_request_url').subscribe(yourdata=>{
      console.log('you have your data: '+JSON.stringify(yourdata));
      });
      

      *如果不是 JSON 数据,则不需要 JSON.parse。只是 res['_body'] 是您获取数据的地方。

      【讨论】:

      • 我相信他想知道如何发出一个httpS请求,你的例子只有http
      【解决方案5】:

      很简单试试这个:-

      import { Http, Headers } from '@angular/Http';
      
      export class service{
        constructor(private http:Http){
         let headers = new Headers({ 'Content-Type': 'application/json' });
          this.http.post(requestUrl,headers,body)
                   .map(val => val.json())
                   .subscribe(data => console.log(data))
      }
      } 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-08
        • 2018-10-03
        • 1970-01-01
        • 2016-08-31
        • 2019-03-05
        • 1970-01-01
        • 2016-06-18
        相关资源
        最近更新 更多