Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure Web API错误-此请求已被阻止;内容必须通过HTTPS提供_Azure_Asp.net Web Api_Angular5_Mixed Content - Fatal编程技术网

Azure Web API错误-此请求已被阻止;内容必须通过HTTPS提供

Azure Web API错误-此请求已被阻止;内容必须通过HTTPS提供,azure,asp.net-web-api,angular5,mixed-content,Azure,Asp.net Web Api,Angular5,Mixed Content,我们已经在azure上部署了api,并试图在我们用angular 5编写的web应用程序中使用它。然而,当我们尝试使用api时,我们会遇到以下错误 Chrome混合内容:已加载“”处的页面 通过HTTPS,但请求了不安全的XMLHttpRequest终结点 ''. 此请求 已被封锁;内容必须通过HTTPS提供 Firefox阻止加载混合活动内容 这个问题与CORS有关吗?如何解决这个问题 在此感谢您的帮助 如您所述,如果您的web应用程序是通过HTTPs托管的,那么它使用的所有外部资源(CDN

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

Chrome混合内容:已加载“”处的页面 通过HTTPS,但请求了不安全的XMLHttpRequest终结点 ''. 此请求 已被封锁;内容必须通过HTTPS提供

Firefox阻止加载混合活动内容

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


在此感谢您的帮助

如您所述,如果您的web应用程序是通过HTTPs托管的,那么它使用的所有外部资源(CDN、脚本、CSS文件、API调用)也应该使用SSL,并通过HTTPs进行保护。想想看。如果你的应用程序反过来向API发出不安全的请求,那么你的应用程序就无法达到安全的目的

因此,您可以:

  • 正如Chrome所建议的,将API调用更改为使用HTTPs(推荐的
  • 使用HTTP而不是HTTPs
  • 将以下
    meta
    标记添加到HTML中的
    元素中:


  • 更多信息可以在这里找到:。

    下面的meta标记有助于防止Chrome抱怨HTTP请求。我当时正在处理一个类项目(一个天气应用程序),通过HTTP进行API调用,在HTTP调用中添加一个S没有任何帮助。由于这是一个项目,因此没有重大问题。上面由@Medhi Ibrahim分享的meta标签实现了这一点

    <meta> http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
    
    http equiv=“内容安全策略”Content=“升级不安全请求”>
    
    使用这个----添加到你的头部部分 我将尝试我的天气应用程序&现在它运行良好

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

    仅在标题部分添加此选项

    
    
    
    
    仅当资源API支持HTTPS请求时,才能使用此选项


    示例:“http://ip-api.com/json“和”https://ip-api.com/json“如果“ip api.com”不支持HTTPS请求,则两者都不会返回相同的响应。

    Chrome错误消息已准确解释了问题所在以及需要如何解决。您可以将api的域添加到html头中允许的资源中。正如错误所说:使用https@duskwuff是的,所以我们只需要使用https协议的所有API。但我们是否需要从使用api的位置或web api的角度进行修正?@SimonFranzen您能否举例说明如何在HTML头部的允许资源中添加api域?Google:CORS allow domain。对不起,我正在路上。。。。。
    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">