首页 > 解决方案 > react-native iOS 调用本地主机模拟服务器不透明响应

问题描述

我使用模拟服务器进行 e2e 测试反应原生应用程序。

在测试期间,我将应用程序指向 localhost:1080(这是运行模拟服务器的端口)。这在我使用调试包时效果很好,但是一旦我切换到发布包,所有对 localhost 的 API 调用都会收到不透明的响应。这只发生在 iOS 应用程序上,Android 按预期工作。

例如,给定这段代码

const response = await fetch(`${config.basePathApi}/test`, {
    method: 'POST',
    headers: COMMON_HEADERS,
    body: JSON.stringify(request),
});

response.okfalseresponse.status0。_

我已验证模拟服务器正确接收请求并以正确的状态、有效负载等进行响应。

我尝试了各种设置Info.plist,例如

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

或者

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

但到目前为止没有一个工作。

如果有人以前见过这个并且可以指出我正确的方向,那将不胜感激。

标签: javascriptiosreact-native

解决方案


推荐阅读