为什么在cordova包装的应用程序中,http://请求会变成file:////

Why a http:// request turns to file:/// in a cordova wrapped app?

本文关键字:请求 file http cordova 包装 应用程序 为什么      更新时间:2023-09-26

我正在开发一个web单页应用程序,它大量使用ajax请求并在桌面浏览器中正常工作。但是当我把它放在XCode中的cordova包装器中,并在模拟器或iPhone上再次运行它时,由于某种原因,我看到的不是http://myhost:3000/api/login这样的请求,而是file:///api/login,显然它失败了。原因是什么呢?

PhoneGap应用程序运行在file:页面上,请求可能是绝对路径/api/login,因此绝对路径解析为file:///api/login

我假设你的代码以前在http://myhost:3000页面上运行,其中绝对路径解析为http://myhost:3000/api/login

如果你想在PhoneGap中向主机发出请求,你必须在路径中显式指定主机。要允许Ajax访问主机,可能需要显式地将其列入白名单。