代码之家  ›  专栏  ›  技术社区  ›  slowsword

Angularjs http:。日本iOS9 404

  •  0
  • slowsword  · 技术社区  · 9 年前

    我有一个Cordova Angularjs应用程序,正在从我的服务器获取一些JSON。它在iOS 8上运行,但当我“升级”到iOS 9时,我的服务器现在什么都没有。服务器尚未更改,如果导航到我的url,我可以看到JSON响应。

    我把它归结为我的$http。json()方法。当试图检索JSON时,它会给我一个404错误。同样的代码工作正常,并在iOS 8设备上获得JSON。

    还有谁对这个和iOS 9有问题,并找到了更多答案?这显然是一个与苹果有关的问题。。。

    1 回复  |  直到 9 年前
        1
  •  5
  •   Community CDub    4 年前

    将此添加到 info.plist 文件

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

    从…起 this page

    应用程序传输安全(ATS)在应用程序与其后端之间的安全连接中实施最佳实践。ATS防止意外泄露,提供安全的默认行为,并且易于采用;在iOS 9和OS X v10.11中,它也是默认打开的。无论您是创建新应用程序还是更新现有应用程序,都应该尽快采用ATS。

    如果你在开发一个新的应用程序,你应该专门使用HTTPS。如果你有一个现有的应用程序,你应该尽可能多地使用HTTPS,并尽快创建一个迁移应用程序其余部分的计划。此外,您通过更高级别API的通信需要使用TLS 1.2版本进行加密,并具有转发保密性。如果尝试建立不符合此要求的连接,则会引发错误。如果您的应用程序需要向不安全的域发出请求,则必须在应用程序的信息中指定该域。plist文件。

    在iOS9中,这是默认打开的。他们建议尽可能使用https进行开发。要解决这个问题,您需要在这个答案中使用前面的代码。