繁体   English   中英

App Transport Security已阻止明文HTTP资源

[英]App Transport Security has blocked a cleartext HTTP resource

在此输入图像描述

我在swift中使用Socket.IO库并且我一直收到此错误:

App Transport Security已阻止明文HTTP(http://)资源加载,因为它不安全。 可以通过应用程序的Info.plist文件配置临时例外。

当我尝试发送http请求时。 我根据官方的苹果文档添加了plist键,但它没有帮助。

你需要像这样纠正它:

在此输入图像描述

为了更容易,这是info.plist中的正确xml

<key>NSAppTransportSecurity</key>
    <dict>
        <key>NSExceptionDomains</key>
        <dict>
            <key>localhost</key>
            <dict>
                <key>NSIncludesSubdomains</key>
                <true/>
                <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
                <true/>
                <key>NSTemporaryExceptionMinimumTLSVersion</key>
                <string>TLSv1.1</string>
            </dict>
        </dict>
    </dict>

localhost更改为您的实际服务器

检查表中的NSAppTransportSecurity选项

如果您希望与任何域进行所有通信,则可以执行以下操作:

 <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>

但是,您应该在开发阶段使用最新版本。

我发现更方便的另一种解决方法是使用NSAllowsArbitraryLoads键默认禁用App Transport Security。 因此,您未包含在NSExceptionDomains字典中的任何域(或者如果您根本不包括NSExceptionDomains )将不受App Transport Security的约束。

在此输入图像描述

我在屏幕截图中看到错误的密钥和拼写错误。 这是一个工作示例:

屏幕

Xcode项目 - >转到info.plist并单击+按钮然后添加(应用程序传输安全设置)展开,允许任意负载设置为是。 谢谢

我在xCode 8.2工作。 它有点不同,但编辑PLIST文件需要在App Transport Security Settings Line中添加这两个项目...:

Allow Arbitrary LoadsAllow Arbitrary Loads in Web Content ...并为它们提供关键YES

它对我有用,希望这对你有用,对不起我的英语。

在此输入图像描述

在此输入图像描述

@William Kinaan有最好的答案,但最好确保在异常域“localhost”下面添加NSAllowsArbitraryLoads ......而不是在更高的NSTransportSecurity级别上打开,直到所有域。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM