React-Native

ios 发送http请求失败

2018-07-19  本文已影响0人  lwtzzz

iOS9引入了新特性App Transport Security (ATS)。详情:App Transport Security (ATS)

原先是发送的ip地址的请求,现在改成域名,ios请求发送就出现了问题。

解决方式:

打开项目 info.plist->open as source code->添加上

<key>NSAppTransportSecurity</key>
  <dict>
    <key>NSExceptionDomains</key>
    <dict>
      <key>自己的域名</key>
      <dict>
        <key>NSExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <key>NSIncludesSubdomains</key>
        <true/>
      </dict>
    </dict>
  </dict>

选择使用 NSExceptionDomains 来针对特定的域名,通过设定该域名下的 NSExceptionAllowsInsecureHTTPLoads 来开放 HTTP 应该要相对容易过审核。“需要访问的域名是第三方服务器,他们没有进行 HTTPS 对应”会是审核时的一个可选理由,但是这应该只需要针对特定域名,而非全面开放。如果访问的是自己的服务器的话,可能这个理由会无法通过。

第二种方式:

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

  <true/>
  </dict>

你依然可以添加 NSAllowsArbitraryLoads 为 YES 来全面禁用 ATS,不过如果你这么做的话,需要在提交 app 时进行说明,为什么需要访问非 HTTPS 内容。一般来说,可能简单粗暴地开启这个选项,而又无法找到正当理由的 app 会难以通过审核。

上一篇 下一篇

猜你喜欢

热点阅读