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

Javascript 为什么在cordova包装的应用程序中,http://请求变成file://?,javascript,html,cordova,Javascript,Html,Cordova,我正在开发一个web单页应用程序,它大量使用ajax请求,并在桌面浏览器中正常工作。但是当我把它放在XCode中的cordova包装器中,出于某种原因在模拟器或iPhone上再次运行它时,而不是像http://myhost:3000/api/login我明白了file:///api/login显然它失败了。 原因可能是什么?PhoneGap应用程序在文件:页面上运行,请求可能是绝对路径/api/login,因此绝对路径解析为file:///api/login 我假设您的代码以前在http://m

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

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

我假设您的代码以前在
http://myhost:3000
page,其中绝对路径解析为
http://myhost:3000/api/login


如果要向PhoneGap中的主机发出请求,必须在路径中明确指定主机。要允许Ajax访问主机,您可能需要使用它。

我猜您是在尝试直接打开文件,而不是从服务器打开文件