Karosli

Results 47 comments of Karosli

js-native 不是我们期望的,他有自身的限制,不能让前端共用一套代码,并且不能获取二进制数据。 跨域可以通过配置webview来允许 file 协议加载的文件去发送跨域请求。 [configuration setValue:@YES forKey:@"_allowUniversalAccessFromFileURLs"];

假定是使用了 webserver,webserver 是怎么知道 ajax 真正的 host 是什么?

axios 应该是可以解决 baseURL 找不到的问题的,只不过这个 baseURL 是一个 localhost,不是真正期望的请求host,只是把请求转发到本地了,但是本地又要转发给谁呢? XMLHTTPRequest 我只是提下,可能的话, 可以 hook send 方法,拼接 localhost到前面,但是也会遇到找不到真正的 host,那也许可以在 hook send 之前主动设置一个请求头,头里存一个真正的 host

那你这边的 ajax 请求的是一个完整的路径了,就需要后台配置跨域响应头了

交给客户端原生,那就需要 ajax 的 url (./getInfo)使用相对路径了,才会转到 local webserver 里面去,那 local webserver 得到是一个 http://localhost:88888/appid/getInfo 的一个请求,这样请求是找不到远程服务器的,所以是需要一个真正的 host,这也是我上面问你的问题。

> 可以,不过我还是建议离线包下把请求交给客户端原生,改起来也很容易。 如果不会相对路径,你这边怎么把请求交给客户端去发,jsbridge 是可以发,但是不能支持二进制的场景,只能 json 数据交互,不能满足所有的场景,而且 jsbrdge 发送 api 对于 H5 是一种侵入。

> > > 可以,不过我还是建议离线包下把请求交给客户端原生,改起来也很容易。 > > > > > > 如果不会相对路径,你这边怎么把请求交给客户端去发,jsbridge 是可以发,但是不能支持二进制的场景,只能 json 数据交互,不能满足所有的场景,而且 jsbrdge 发送 api 对于 H5 是一种侵入。 > > jsbridge 不能叫对h5有侵入性,本来就是混合开发,而且原生和h5就是要通过桥接的方式相互补足各自的短板。你说的二进制等等问题都能通过原生配合解决。 > 你不想要“侵入性”,就别考虑离线包的方式了,就用webview做个壳套个线上h5得了。 嗯,我的意思是 jsbridge 发 api...