Angularjs http.jsonp iOS9 404

时间:2015-09-18 16:25:45

标签: ios angularjs cordova http jsonp

我有一个Cordova Angularjs应用程序从我的服务器获取一些JSON。它可以在iOS 8上运行,但是当我升级"到iOS 9我现在从我的服务器中得不到任何东西。服务器尚未更改,如果我导航到我的网址,我可以看到JSON响应。

我把它稍微缩小到我的$ http.jsonp()方法。尝试检索JSON时,它给出了404错误。相同的确切代码工作正常,并在iOS 8设备上获取JSON。

其他任何人对此问题和iOS 9有疑问并且已经想出更多了吗?这看起来像苹果相关的问题......

1 个答案:

答案 0 :(得分:5)

将其添加到您的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版进行加密。如果尝试建立不符合此要求的连接,则会引发错误。如果您的应用需要向不安全的域发出请求,则必须在应用的Info.plist文件中指定此域。

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