首页 > 解决方案 > Web API 错误 - 此请求已被阻止;内容必须通过 HTTPS 提供

问题描述

我们已经在 azure 上部署了 api,并尝试在我们用 angular 5 编写的 web 应用程序中使用。但是,当我们尝试使用 api 时,我们会遇到以下错误。

Chrome混合内容:“ https://somedevapp.azurewebsites.net/#/managesomething ”处的页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点“ http://admindevapp.azurewebsites.net/api/data/getdata ” . 此请求已被阻止;内容必须通过 HTTPS 提供。

Firefox阻止加载混合的活动内容

这个问题与CORS有关吗?如何解决这个问题?

对此的任何帮助表示赞赏!

标签: azureasp.net-web-apiangular5mixed-content

解决方案


如果您的 Web 应用程序如您所指出的那样通过 HTTPs 托管,那么它消耗的所有外部资源(CDN、脚本、CSS 文件、API 调用)也应该使用 SSL 并通过 HTTPs 保护。想想看。如果您的应用反过来向 API 发出不安全的请求,它将破坏您的应用安全的目的。

因此,您可以:

  1. 正如 Chrome 建议的那样,将您的 API 调用更改为使用 HTTPs(推荐
  2. 使用 HTTP 而不是 HTTPS
  3. 将以下meta标记添加到<head>HTML 中的元素:

    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

可以在此处找到更多信息:https ://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/upgrade-insecure-requests 。


推荐阅读