Angularjs http.jsonp iOS9 404

Angularjs http.jsonp iOS9 404,ios,angularjs,cordova,http,jsonp,Ios,Angularjs,Cordova,Http,Jsonp,我有一个Cordova Angularjs应用程序,可以从我的服务器上获取一些JSON。它在iOS 8上工作,但当我“升级”到iOS 9时,我现在从服务器上什么也得不到。服务器尚未更改,如果导航到我的url,我可以看到JSON响应 我把它归功于我的$http.jsonp()方法。在尝试检索JSON时,它给了我一个404错误。同样的代码工作正常,可以在iOS8设备上获取JSON 还有谁对iOS 9和iOS 9有问题,并且有更多的了解吗?这显然是一个与苹果有关的问题…将此添加到您的info.plis

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

我把它归功于我的$http.jsonp()方法。在尝试检索JSON时,它给了我一个404错误。同样的代码工作正常,可以在iOS8设备上获取JSON


还有谁对iOS 9和iOS 9有问题,并且有更多的了解吗?这显然是一个与苹果有关的问题…

将此添加到您的
info.plist
文件中

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

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

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


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

将此代码添加到您的
info.plist
文件中

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

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

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


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

我必须将xcode项目中的
info.plist
文件编辑为
NSAppTransportSecurity NSAllowsArbitraryLoads
您没有说这是一个与xcode相关的项目,但是,如果有可能需要将某些头添加到项目中,以便在iOS9.Yes xcode项目中使用这些头。我添加了这个,现在它可以工作了。加上这个作为答案,我会接受的@区域28您能解释一下为什么这会对iOS9产生影响吗?我必须将我的xcode项目中的
info.plist
文件编辑为
NSAppTransportSecurity NSAllowsArbilarLoads
您没有说这是一个与xcode相关的项目,但是,如果有可能需要将某些头添加到项目中,以便在iOS9.Yes xcode项目中使用这些头。我添加了这个,现在它可以工作了。加上这个作为答案,我会接受的@区域28你能解释一下为什么这会对iOS9产生影响吗?