azure - 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有关吗?如何解决这个问题?
对此的任何帮助表示赞赏!
解决方案
如果您的 Web 应用程序如您所指出的那样通过 HTTPs 托管,那么它消耗的所有外部资源(CDN、脚本、CSS 文件、API 调用)也应该使用 SSL 并通过 HTTPs 保护。想想看。如果您的应用反过来向 API 发出不安全的请求,它将破坏您的应用安全的目的。
因此,您可以:
- 正如 Chrome 建议的那样,将您的 API 调用更改为使用 HTTPs(推荐)
- 使用 HTTP 而不是 HTTPS
将以下
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 。
推荐阅读
- javascript - 为什么我在 reactjs 中使用 DELETE restapi 调用的异步删除方法不起作用?
- sqlite - 如何为约束名称编写 Fluent NHibernate 约定?
- r - 如何使用创建的机器学习模型创建仪表板
- c# - ASP.NET CORE 3.1:Azure AD 身份验证在 EDGE 中失败。身份验证期间无限重定向循环和页面重新加载
- python - 如何使用 matplotlib 降低时间序列的索引刻度频率
- npm - 将 Sveltekit 应用程序部署到 Netlify 时,构建中断并出现错误“@supabase/supabase-js”不提供名为“createClient”的导出。怎么修?
- python - 循环中的变量更新错误 - Python(Q-learning)
- google-cloud-firestore - Firestore 云功能 - 每次将文档添加到不同的集合(不是“用户”)时,我可以向用户发送电子邮件吗?
- apache-flink - 当会话窗口因不活动而到期时如何触发函数
- field - 全球化(阿拉伯语)