ionic开发模式下跨域调试

  1. 数据mock。
    在组建中,通过http模块调用数据接口,只需要在www目录下建立对应的文件,即可完成数据mock。
  2. 跨域调试。
    当我们在数据联调过程中,开发模式(ionic serve或者ionic run -l)下必然涉及到接口跨域(本地url为http://localhost:8100),如果要做跨域设置,则需要在服务器接口响应配置CORS,然而在涉及到cookie传输时,CORS配置不能为*,必须指定特定的域名。这便成了矛盾所在。
    我试过通过代理工具charles来对本地url代理到对应作用域下的接口,然而本地服务器的livereload.js总是代理失败。最终通过chrome的启动参数--diable-web-security设置来允许直接跨域接口访问,mac下启动方式如下:
    /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --user-data-dir
    最后的-user-data-dir是chrome49以后的版本要求添加的,否则跨域时无法携带cookie,具体设置方法也可参考chrome浏览器的跨域设置——包括版本49前后两种设置

如果是其他模式,比如发布了apk到手机上进行体验,这种情况下并没有使用本地的server,而是使用的file协议,此时并不存在跨域问题。如果需要在手机上体验并且需要数据mock,则需要建立对应的web服务器,使得数据请求能被访问,以文件的形式返回。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容