Angular Nativescript localhost http调用在iOS上失败

Angular Nativescript localhost http调用在iOS上失败,angular,nativescript,Angular,Nativescript,我在windows上使用Nativescript sidekick cloud build在iOS上测试我的应用程序——我还连接了我的iPhone 根据post,我正在向localhost发送http请求,但由于这个错误,它们一直失败 0的Http失败响应未知错误 错误:无法连接到服务器 这是我对奖励服务的实施 从“@angular/core”导入{Injectable}; 从“@angular/common/http”导入{HttpClient}; 从'rxjs'导入{可观察的}; 从“./

我在windows上使用Nativescript sidekick cloud build在iOS上测试我的应用程序——我还连接了我的iPhone

根据post,我正在向localhost发送http请求,但由于这个错误,它们一直失败

0的Http失败响应未知错误
错误:无法连接到服务器

这是我对奖励服务的实施

从“@angular/core”导入{Injectable};
从“@angular/common/http”导入{HttpClient};
从'rxjs'导入{可观察的};
从“./模型/简单奖励”导入{SimpleWard};
从“rxjs/operators”导入{take,catchError};
@可注射()
导出类报酬服务{
专用baseUrl=”http://localhost:52553/api/rewards";
构造函数(私有http:HttpClient){}
getAllRewards():可观察{
常量url=`${this.baseUrl}/all`;
返回此.http.get(url).pipe(
捕捉错误((e)=>{
控制台错误(e);
归还([]);
})
);
}

}
您可以在info.plist中禁用安全性或添加localhost作为例外

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

您可以在info.plist中禁用安全性或添加localhost作为例外

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

添加
localhost
作为
app/app\u Resources/iOS/Info.plist
文件的例外,以允许与
http://localhost
域:

NSAppTransportSecurity
NSExceptionDomains
本地服务器
N异常低安全Http负载
这比允许与所有域进行不安全的通信更可取


编辑:另外,请记住,编辑完
Info.plist
文件后,您必须重新构建应用程序!它的更改不能像JS那样简单地进行实时同步或重新加载热模块。

localhost
作为
app/app\u Resources/iOS/Info.plist
文件的例外添加到
http://localhost
域:

NSAppTransportSecurity
NSExceptionDomains
本地服务器
N异常低安全Http负载
这比允许与所有域进行不安全的通信更可取


编辑:另外,请记住,编辑完
Info.plist
文件后,您必须重新构建应用程序!它的更改不能像JS一样简单地实时同步或重新加载热模块。

添加NSAppTransportSecurity,因为默认情况下iosAdd中不允许使用非https添加NSAppTransportSecurity,因为默认情况下iosAdd中不允许使用非https感谢您的响应。我添加了它,但出现了相同的错误。@shobhitvaish在更改
Info.plist
后,您需要重新生成应用程序;是你干的吗?可以做一个干净的构建来避免怀疑。我尝试过干净的构建,但没有运气。我确信我的本地主机正在工作等一下。您正在桌面上运行
localhost
,是吗?尝试在模拟器上而不是物理设备上运行应用程序:
tns run ios--emulator
。您的iPhone将无法访问桌面web服务器的
localhost
。如果你想从你的物理iPhone连接到它,你需要打开桌面上的web共享(可能还禁用防火墙端口),从你的iPhone连接到一个特定的IP,而不是
localhost
,并为它提供相应的
NSExceptionDomains
条目。所以我终于让它工作了。谢谢你的指导!谢谢你的回复。我添加了它,但出现了相同的错误。@shobhitvaish在更改
Info.plist
后,您需要重新生成应用程序;是你干的吗?可以做一个干净的构建来避免怀疑。我尝试过干净的构建,但没有运气。我确信我的本地主机正在工作等一下。您正在桌面上运行
localhost
,是吗?尝试在模拟器上而不是物理设备上运行应用程序:
tns run ios--emulator
。您的iPhone将无法访问桌面web服务器的
localhost
。如果你想从你的物理iPhone连接到它,你需要打开桌面上的web共享(可能还禁用防火墙端口),从你的iPhone连接到一个特定的IP,而不是
localhost
,并为它提供相应的
NSExceptionDomains
条目。所以我终于让它工作了。谢谢你的指导!尝试-不走运:(尝试-不走运:(