Angular - 混合内容:“https 错误”处的页面

Posted

技术标签:

【中文标题】Angular - 混合内容:“https 错误”处的页面【英文标题】:Angular - Mixed Content: The page at 'https Error 【发布时间】:2019-11-25 01:40:09 【问题描述】:

我正在使用 Angular 7(前端)和 Laravel(后端)开发应用程序。我在 POSTMAN 中测试了端点,它可以工作。当我尝试登录应用程序时,出现此错误。

混合内容:“https://sandbox.cloudinteractiveplatforms.com/login”处的页面通过 HTTPS 加载,但请求了不安全的 XMLHttpRequest 端点“http://sandboxbackend.cloudinteractiveplatforms.com/api/login”。此请求已被阻止;内容必须通过 HTTPS 提供。

环境

export const environment = 
 production: true,
 apiUrl:   'http://sandboxbackend.cloudinteractiveplatforms.com/api',
;

login.component.ts

  onLogin(user: User): Observable<User> 

const request = JSON.stringify(
   email: user.email, password: user.password 
);

return this.http.post(this.loginUrl, request, httpOptions)
  .pipe(
    map((response: User) => 
      // Receive jwt token in the response
      const token: string = response['access_token'];
      // If we have a token, proceed
      if (token) 
        this.setToken(token);
        this.getUser().subscribe();
      
      return response;
    ),
    catchError(error => this.handleError(error))
  );
  

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

把环境文件中的apiUrl改成https这样。

apiUrl:   'https://sandboxbackend.cloudinteractiveplatforms.com/api',

在此处阅读有关 混合内容 错误的更多信息-https://developers.google.com/web/fundamentals/security/prevent-mixed-content/what-is-mixed-content

【讨论】:

如果API不提供https连接怎么办?

以上是关于Angular - 混合内容:“https 错误”处的页面的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular Navigation .Designs 混合在 windows phonegap 应用程序中

Angular 混合应用程序 - Angular 2 路由器不工作

导航到混合 Angular 中的另一个组件

单元测试混合 Angular Js 和 Angular 8 应用程序

构建混合 angular/angularjs 应用程序 - 如何在 angularjs 应用程序中加载 Angular 模块

Angular 8 混合应用程序无法识别 AngularJS 组件