根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?
传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。
假设我的域名是example.com。
根据以下错误消息,我需要在info.plist中设置什么来启用HTTP模式?
传输安全性已阻止明文HTTP(HTTP://)资源因为它是不安全的。可以通过以下方式配置临时异常应用程序的Info.plist文件。
假设我的域名是example.com。
当前回答
对于Cordova,如果您想将其添加到ios.json中,请执行以下操作:
"NSAppTransportSecurity": [
{
"xml": "<dict><key>NSAllowsArbitraryLoads</key><true /></dict>"
}
]
并且它应该位于:
"*-Info.plist": {
"parents": {
}
}
其他回答
Use:
在类型为Dictionary的plist文件中添加新项NSAppTransportSecurity,然后在类型为Boolean的字典中添加子项NSAllowsArbitraryLoads,并设置bool值YES。这对我有用。
以下是直观的设置:
默认情况下,iOS仅允许HTTPS API。由于HTTP不安全,您必须禁用应用程序传输安全性。有两种禁用ATS的方法:-
1.在项目info.plist中添加源代码,并在根标记中添加以下代码。
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
2.使用项目信息。
单击左侧窗格中项目上的项目,选择项目作为目标,然后选择信息选项卡。您必须按照以下结构添加字典。
使用NSAppTransportSecurity:
您必须在info.plist文件中的NSAppsTransportSecurity字典下将NSAllowsArbitraryLoads键设置为YES。
根据苹果的说法,通常禁用ATS会导致应用程序被拒绝,除非你有充分的理由这样做。即使如此,你也应该为可以安全访问的域添加例外。
苹果有一个很好的工具,它可以准确地告诉你要使用什么设置:在终端中,输入
/usr/bin/nscurl --ats-diagnostics --verbose https://www.example.com/whatever
和nscurl将检查此请求是否失败,然后尝试各种设置,并告诉您通过的是哪一个,以及要做什么。例如,对于我访问的某个第三方URL,此命令告诉我此字典通过了:
{
NSExceptionDomains = {
"www.example.com" = {
NSExceptionRequiresForwardSecrecy = false;
};
};
}
要区分您自己的站点和您无法控制的第三方站点,请使用例如键NSThirdPartyExceptionRequiresForwardSecrecy。